【发布时间】:2011-03-16 00:01:51
【问题描述】:
我有一个像这样的 WCF 操作,
public bool SubmitDocument(byte[] document)
所以想法是调用者将序列化一个文档,并调用上面的操作。然后它会被放入我们的数据库中。
我试图了解 WCF 的内部工作原理,因此当有人调用上面的操作时,所有 byte[] 数据都需要在调用实际操作之前发送到服务器似乎是合乎逻辑的。
有没有办法在数据开始上传到服务器时“记录”,并且如果中途失败也可以捕获错误?我遇到了大约 4mb 的文档在中途失败的问题,而且我的 WCF 服务甚至没有记录有人试图调用该操作。
我已经像这样增加了上传大小限制,
<wsHttpBinding>
<!-- The upload limit should be 5 Mb, rounding up to 6 Mb just to be sure -->
<binding name="CarWebserviceBinding" maxReceivedMessageSize="6291456">
<security mode="None">
</security>
<!-- The upload limit should be 5 Mb, rounding up to 6 Mb just to be sure -->
<readerQuotas maxArrayLength="6291456" />
</binding>
</wsHttpBinding>
总体问题是第三方调用了上面的 WCF 操作 (SubmitDocument),如果文档超过 4Mb,则永远无法到达我们的末尾。
【问题讨论】:
-
是的。打开跟踪。
-
顺便说一句,WCF 没有网络方法。它有操作。这是行业标准术语。
-
我在下面的回答也提到了我是如何开启追踪功能的。