我有WCF服務,通過它我在數據庫中添加數據。它工作正常,但是當我嘗試發送大字節[]時,它返回「遠程服務器返回錯誤:NotFound」。發送大字節數組時出錯
的web.config
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="JabsBaseConnectionString" connectionString="Data Source=TAHASAGHIR-PC\SQLEXPRESS;Initial Catalog=JabsBase;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpRuntime maxRequestLength="2097151" useFullyQualifiedRedirectUrl="true"/>
</system.web>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" />
<bindings>
<basicHttpBinding>
<binding name="SendLargeChat"
allowCookies="false"
bypassProxyOnLocal="false"
maxBufferPoolSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"
closeTimeout="10:00:00"
openTimeout="10:00:00"
receiveTimeout="10:00:00"
sendTimeout="10:00:00"
transferMode="Streamed">
<readerQuotas
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxDepth="2147483647"
maxNameTableCharCount="2147483647"
maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="Prototype.SendChatService" behaviorConfiguration="Prototype.SendChatServiceBehavior">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="SendLargeChat" contract="Prototype.SendChatService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="Prototype.SendChatServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
ServiceReferences.ClientConfig
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ISendChatService" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:53756/PrototypeSite/SendChatService.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISendChatService"
contract="SendChatService.ISendChatService" name="BasicHttpBinding_ISendChatService" />
</client>
</system.serviceModel>
</configuration>
請求 POST http://localhost:53756/PrototypeSite/SendChatService.svc HTTP/1.1 主機:本地主機:53756 連接:保持活躍 的Referer:http://localhost:53756/PrototypeSite/ClientBin/Prototype.xap 內容長度:1348176 soapaction:「http://tempuri.org/ISendChatService/addMsg」 content-type:text/xml;字符集= UTF-8 接受:/ 的User-Agent:Mozilla的/ 5.0(Windows NT的6.1)爲AppleWebKit/534.24(KHTML,例如Gecko)鉻/ 11.0.696.68 Safari瀏覽器/ 534.24 接受編碼:gzip,放氣, SDCH 接受語言:EN-US,EN; q = 0.8 接收字符集:ISO-8859-1,utf-8; q = 0.7,*; q = 0.3
響應 HTTP/1.1 400 Bad Request 服務器:ASP.NET Development Server/10.0.0.0 日期:2011年5月26日星期四17:48:00 GMT X-AspNet-Version:4.0.30319 Cache-Control:private 內容長度:0 連接:關閉
Aliostad,感謝您的快速響應!你可以請給出過程的細節,如何將字節數組轉換爲base64字符串,反之亦然? – Taha 2011-05-26 11:40:47
哇。這真的是有用的知道。你有沒有解釋這個的參考? – Xhalent 2011-05-26 11:41:19
這聽起來不太正確......我確信byte []被串行器編碼爲Base64字符串。 http://webservices20.blogspot.com/2010/10/important-wcf-performance-issue.html – TheNextman 2011-05-26 11:52:17