积极答复者
Silverlight 调用WCF 远程服务器返回了错误: "NotFound "

问题
-
silverlight调用wcf有时很不稳定,同样调用一个方法,有时正确,有时会报远程服务器返回了错误: NotFound;
WCF服务本身对数据包进行了限制,最大不能超过65535;接收包的大小,并发的连接数等等;这些都在配置文件里改过了。可以排除; 但是有时正常,很不稳定,搞了一周了,还是找不到原因,难道是异步调用的问题?希望朋友们帮下忙;该怎么排除错误,提出有好的解决方案;谢谢:
简单的配置文件如下:
看一下如何来配置WCF服务器。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDataService" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647">
<readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="commonsvc">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/></behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service behaviorConfiguration="commonsvc" name="MyNetDisk.Web.FileService">
<endpoint address="" binding="basicHttpBinding" contract="MyNetDisk.Web.FileService" bindingConfiguration="BasicHttpBinding_IDataService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
efforts..
答案
-
你好,
建议你先创建普通的WCF Client来访问服务,看看问题是否出自Silverlight客户端。另外,看看是否是WCF服务器配置导致的性能问题,参见这篇文章
另外,若WCF需要返回大数据量到客户端,则你同时需要配置客户端的MaxReceivedMessageSize等参数,检查一下客户端配置。
谢谢
Mog Liang- 已标记为答案 Efforts.... _ 2010年7月28日 4:22
全部回复
-
你好,
建议你先创建普通的WCF Client来访问服务,看看问题是否出自Silverlight客户端。另外,看看是否是WCF服务器配置导致的性能问题,参见这篇文章
另外,若WCF需要返回大数据量到客户端,则你同时需要配置客户端的MaxReceivedMessageSize等参数,检查一下客户端配置。
谢谢
Mog Liang- 已标记为答案 Efforts.... _ 2010年7月28日 4:22
-
你好,
建议你先创建普通的WCF Client来访问服务,看看问题是否出自Silverlight客户端。另外,看看是否是WCF服务器配置导致的性能问题,参见这篇文章
另外,若WCF需要返回大数据量到客户端,则你同时需要配置客户端的MaxReceivedMessageSize等参数,检查一下客户端配置。
谢谢
Mog Liang
efforts.. -
你在Silverlight端(ServiceReferences.ClientConfig)是否也配置了MaxReceivedMessageSize参数?出于安全考虑,Browser所有的network error或service error都被转换成404not found错误传给silverlight,这样不利于debug,我建议你暂时转用ClientStack,以方便收集真实的错误信息。
Mog Liang