微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 调用WCF常见错误

错误

错误描述:The Remote Server returned an error: NotFound

可能原因:WCF服务本身对数据包进行了限制,最大不能超过65535,Silverlight发送大数据包到服务器端(例如图片直接存于数据库),   WCF返回以上错误

解决方法

(1)修改Silverlight端ServiceReferences.ClientConfig文件增加Buffer 尺寸。
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><bindings> 
      
<basicHttpBinding> 
                
<binding name="BasicHttpBinding_IDataService" 
                         maxBufferSize
="2147483647" 
                         maxReceivedMessageSize
="2147483647"> 
                    
<security mode="None" /> 
                
</binding> 
       
</basicHttpBinding> 
</bindings>

(2)修改服务器端,在Web.config添加自定义BasicHttpBinding对象,
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><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属性
 服务器端:web.config
< system.serviceModel>
    < behaviors>
      < serviceBehaviors>
        < behavior name= "ExcelServer.Service1Behavior"> <!--name=命名空间(ExcelServer)+类名(Server1)+Bheavior-->
          < serviceMetadata httpGetEnabled= "true" />
          < serviceDebug includeExceptionDetailInFaults= "false" />
          < dataContractSerializer maxItemsInObjectGraph= "2147483647" />
        < /behavior>
    
      < /serviceBehaviors>
    < /behaviors>
    < services>
      < service behaviorConfiguration= "ExcelServer.Service1Behavior"  name= "ExcelServer.Service1"> <!--name=命名空间(ExcelServer)+类名(Server1)-->

        < endpoint address= ""  bindingConfiguration= "LargeBuffer"  binding= "basicHttpBinding"  contract= "ExcelServer.IService1" />

<!--name=命名空间(ExcelServer)+接口(IServer1)-->


      < /service>
    < /services>
    < bindings>
      < basicHttpBinding>
        < binding name= "LargeBuffer"  maxBufferSize= "2147483647"  maxReceivedMessageSize= "2147483647"> <!--name=随意命名-->
          < readerQuotas maxStringContentLength= "2147483647"  maxArrayLength= "2147483647" />
          < security mode= "None">< /security>
        < /binding>
      < /basicHttpBinding>
    < /bindings>
  < /system.serviceModel>
 < system.webServer>
   
    < modules runAllManagedModulesForAllRequests= "true" />
  < /system.webServer>
错误2

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐