我有一个将数据返回到桌面应用程序的网络服务。我遇到的问题是,当网络服务返回少量数据时,一切正常,但当数据量很大时,它会抛出以下异常:
System.Net.WebException:基础连接已关闭:接收时发生意外错误。
当我调试 Web 服务时,我发现这个特定方法被调用了两次。它第一次执行 return 语句时没有任何反应,但是当它第二次执行时,桌面应用程序中会引发上述异常。
我之前在 stackoverflow 上发现过类似的帖子,但他们没有解决我的问题。有人能告诉我这里发生了什么事吗?
Thanks!
这可能是因为消息的大小大于默认消息大小。你可以尝试增加这个值 https://web.archive.org/web/20210128000850/http://geekswithblogs.net/niemguy/archive/2007/12/11/wcf-maxstringcontentlength-maxbuffersize-and-maxreceivedmessagesize.aspx在端点的配置中。您还可以看一下这个帖子 https://hirepythondeveloper.com/blog/.
UPDATE:
为了进一步诊断问题,我建议您通过将以下内容放入配置文件中来激活服务上的跟踪:
<system.diagnostics>
<trace autoflush="true">
</trace>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="sdt"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="WcfDetailTrace.e2e" />
</listeners>
</source>
</sources>
</system.diagnostics>
这将生成WcfDetailTrace.e2e
您可以使用以下命令打开跟踪文件服务跟踪查看器工具 https://learn.microsoft.com/en-us/dotnet/framework/wcf/service-trace-viewer-tool-svctraceviewer-exe这将为您提供有关调用和错误消息的大量信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)