silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight连接WCF--错误"远程服务器返回了错误NotFound”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  今天在项目中发送数据包到服务器端,WCF返回错误信息:The remote server returned an error: NotFound. 经过排查,通过以下步骤进行了解决。   Silverlight企业级项目中,经常要发送大量数据包到服务器端,而WCF服务本身对数据包进行了限制,最大不能超过65535,而我在项目中尝试发送XML大数据包到服务器端,WCF返回以上错误。   起初

  今天在项目中发送数据包到服务器端,WCF返回错误信息:The Remote Server returned an error: NotFound. 经过排查,通过以下步骤进行了解决

  Silverlight企业级项目中,经常要发送大量数据包到服务器端,而WCF服务本身对数据包进行了限制,最大不能超过65535,而我在项目中尝试发送XML大数据包到服务器端,WCF返回以上错误

  起初试在客户端尝试重新定义BasichttpBinding对象

1 Dim binding As BasichttpBinding = New BasichttpBinding()
2 
3 binding.MaxBufferSize = 2147483647 
4 binding.MaxReceivedmessageSize = 2147483647
5 

  然后修改serviceReferences.CLIENtConfig文件增加Buffer 尺寸。

<bindings> 
      <basichttpBinding> 
                <binding name="BasichttpBinding_IDataservice" 
                         maxBufferSize="2147483647" 
                         maxReceivedmessageSize="2147483647"> 
                    <security mode="None" /> 
                </binding> 
       </basichttpBinding> 
</bindings>

  但是,WCF仍旧报错。

  最后,尝试修改服务器端,在Web.config添加自定义BasichttpBinding对象,

<bindings> 
   <basichttpBinding> 
     <binding name="BasichttpBinding_IDataservice" 
         maxBufferPoolSize="2147483647" 
         maxReceivedmessageSize="2147483647" 
         maxBufferSize="2147483647"> 
       <readerQuotas 
           maxArrayLength="2147483647" 
           maxBytesPerRead="2147483647" 
           maxDepth="2147483647" 
           maxNaMetableCharCount="2147483647" 
           max@R_607_10495@ngContentLength="2147483647" /> 
     </binding> 
   </basichttpBinding> 
</bindings>

  另外,在serviceBehaviors中@L_695_11@maxItemsInObjectGraph属性

<behaviors> 
<serviceBehaviors> 
  <behavior name="TeacherLogic.Net.Web.DataserviceBehavior"> 
   <serviceMetadata httpGetEnabled="true" /> 
   <serviceDebug includeExceptionDetailInFaults="true" /> 
   <dataContractserializer maxItemsInObjectGraph="2147483647"/> 
  </behavior> 
</serviceBehaviors> 
</behaviors>

  添加自定义Binding对象后,在endpoint中引用,就解决了“NotFound”问题了。

<endpoint address="" binding="basichttpBinding" contract="Myproject.IDataservice" bindingConfiguration="BasichttpBinding_IDataservice"/>

  

      在Silverlight官方论坛还有一种说法,因为404 Notfound错误的,还可能因为跨域问题,这个问题比较容易解决,只要在网站根目录下建立一个clientaccesspolicy.xml文件即可。

 

<?xml version="1.0" encoding="utf-8" ?><access-policy>  <cross-domain-access>    <policy>      <allow-from http-request-headers="*">        <domain uri="http://*"/>      </allow-from>      <grant-to>        <resource path="/" include-subpaths="true"/>      </grant-to>    </policy>  </cross-domain-access></access-policy

大佬总结

以上是大佬教程为你收集整理的Silverlight连接WCF--错误"远程服务器返回了错误NotFound”全部内容,希望文章能够帮你解决Silverlight连接WCF--错误"远程服务器返回了错误NotFound”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。