Silverlight 調用WCF常見錯誤Silverlight wcf 上傳大資料

來源:互聯網
上載者:User

 

錯誤1 

錯誤描述:The remote server returned an error: NotFound

可能原因:WCF服務本身對資料包進行了限制,最大不能超過65535,Silverlight發送大資料包到伺服器端(例片直接存於資料庫),   WCF返回以上錯誤。

傳輸時,最好用List<string> 代替 string做參數。

解決方案:

(1)修改Silverlight端ServiceReferences.ClientConfig檔案,增加Buffer 尺寸。
  <bindings> 
      <basicHttpBinding> 
                <binding name="BasicHttpBinding_IDataService" 
                         maxBufferSize="2147483647" 
                         maxReceivedMessageSize="2147483647"> 
                    <security mode="None" /> 
                </binding> 
       </basicHttpBinding> 
</bindings>

 

         System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding(System.ServiceModel.BasicHttpSecurityMode.None);
            binding.MaxReceivedMessageSize = int.MaxValue;
            binding.MaxBufferSize = int.MaxValue;
            binding.ReceiveTimeout = TimeSpan.FromMinutes(5);
            binding.SendTimeout = TimeSpan.FromMinutes(5);
            binding.CloseTimeout = TimeSpan.FromMinutes(5);
            binding.OpenTimeout = TimeSpan.FromMinutes(5);
            EndpointAddress ep = new EndpointAddress("../DataService.svc");
            MyTest.DataService.DataServiceClient client = new DataServiceClient(binding,ep);

(2)修改伺服器端,在Web.config中添加自訂BasicHttpBinding對象,

 

 伺服器端:web.config

<configuration>
  <appSettings>
    <add key="ReturnTablePath" value="C:\TestData\test_data.csv"/>
  </appSettings>
    <system.web>
      <httpRuntime maxRequestLength="2147483647"/>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>

  <system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <behaviors>
      <serviceBehaviors>
        <behavior name="MappingDataEditor.Web.DataServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="MappingDataEditor.Web.DataServiceBehavior" name="MappingDataEditor.Web.DataService">
        <!--name=命名空間(ExcelServer)+類名(Server1)-->
        <endpoint address="" bindingConfiguration="LargeBuffer" binding="basicHttpBinding" contract="MappingDataEditor.Web.IDataService"/>
        <!--contract=命名空間(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>
</configuration>

錯誤2

 

Silverlight wcf 上傳大資料

 

1.服務端:

 MaxRequestLength:  請求的最大大小(以KB為單位)。預設大小為 4096 KB (4 MB)。

<system.web>
  <httpRuntime maxRequestLength="2147483647"/>
  <compilation debug="true" targetFramework="4.0" />
 </system.web>

 

 

<system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="NewBinding2MB" maxReceivedMessageSize="2147483647"
                         maxBufferSize="2147483647"  maxBufferPoolSize="2147483647"
                         closeTimeout="10:00:00" openTimeout="10:00:00" receiveTimeout="10:00:00"
                         sendTimeout="10:00:00" >
                    <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647"
                                  maxBytesPerRead="2147483647" maxDepth="2147483647"                                        maxNameTableCharCount="2147483647" />
                </binding>
            </basicHttpBinding>
        </bindings>

 

 

2.用戶端

        <binding name=" " maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
                    <security mode="None" />
                </binding>

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.