我有一个简单的WCF,它有两个方法,第一个是:GetDetails,这个方法,在字节数组中给我返回一些信息和一些图像(所有这些都在XML文档中),但我遇到了一个问题:
当我尝试调用这个方法时:
using (testWCF wcfClient = new testWCF()) { //new testWCF() has no parameter costructors, so i can't use bindings or different endpoint...Why?...anyway
string ff = wcfClient.GetDetails ("Test");
}
调试器抛出一个新的异常:(413)请求实体太大
这很奇怪,因为在web.config中,配置似乎很好:
<?xml version="1.0"?>
<configuration>
<appSettings/>
<system.web>
<compilation targetFramework="4.0"/>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri=""/>
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400"/>
</providers>
</roleManager>
<pages controlRenderingCompatibilityVersion="4.0"/>
</system.web>
<!-- Quando si distribuisce il progetto della libreria di servizi, è necessario aggiungere il contenuto del file di configurazione al file
app.config dell'host. System.Configuration non supporta i file di configurazione delle librerie. -->
<system.serviceModel>
<services>
<service name="WCF">
<endpoint address="http://10.10.10.1/wcf/WCF.svc" binding="basicHttpBinding" contract=“wcfContract” bindingConfiguration="MyBindingConfig" behaviorConfiguration="SingleFileBehaviour"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="MyBindingConfig" textEncoding="utf-8" openTimeout="00:02:15" closeTimeout="00:02:15" sendTimeout="00:00:15" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="SingleFileBehaviour">
<wsdlExtensions singleFile="true"/>
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="wsdlExtensions" type="WCFExtrasPlus.Wsdl.WsdlExtensionsConfig, WCFExtrasPlus, Version=2.4.0.6, Culture=neutral, PublicKeyToken=f8633fc5451b43fc"/>
</behaviorExtensions>
</extensions>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
</configuration>
求你了,帮帮我,我在这上面挣扎。
谢谢。
更改您的配置如下:
- 您必须增加UploadReadAheadSize。(默认大小48kb)
-
将最大接收消息大小增加到以下
<basicHttpBinding> <binding maxReceivedMessageSize="10485760"> </binding> </basicHttpBinding>