Silverlight 调用WCF常见错误

    技术2022-05-19  24

    错误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

     


    最新回复(0)