Silverlight + WCF错误“The remote server returned an error: NotFound.”的解决方法

Silverlight + WCF错误“The remote server returned an error: NotFound.”的解决方法,第1张

概述今天在项目中发送数据包到服务器端,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对象       Dim  binding  As  BasichttpBinding  =   New  BasichttpBinding()
 
  binding.MaxBufferSize  =   2147483647  
  binding.MaxReceivedMessageSize  =   2147483647
然后考虑修改ServiceReferences.ClIEntConfig文件,增加Buffer 尺寸。

Code
<bindings> 
      
<basichttpBinding> 
                
<binding name="BasichttpBinding_IDataService" 
                         maxBufferSize
="2147483647" 
                         maxReceivedMessageSize
="2147483647"> 
                    
<security mode="None" /> 
                
</binding> 
       
</basichttpBinding> 
</bindings>

但是,WCF仍旧报错。 最后,尝试修改服务器端,在Web.config中添加自定义BasichttpBinding对象,

Code
<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>


另外,在ServiceBehaviors中添加maxItemsInObjectGraph属性

Code
<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文件即可。

Code
<?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>
摘自: http://www.voidcn.com/article/p-dckmunki-bke.html 总结

以上是内存溢出为你收集整理的Silverlight + WCF错误“The remote server returned an error: NotFound.”的解决方法全部内容,希望文章能够帮你解决Silverlight + WCF错误“The remote server returned an error: NotFound.”的解决方法所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存