Silverlight 调用WCF常见错误

错误1 

错误描述: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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值