重要更新:今天我尝试将绑定类型从customBinding更改为basicHttpBinding,它直接起作用。这使我能够使用maxBufferSize等,所以请将我的问题视为已回答。这是我的代码(web.config):
<bindings>
<!--<customBinding>
<binding name="WCFLogServiceProvider.WCFLogService.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
</customBinding> //Old binding configuration. This configuration will be generated when you start with a Silverlight enabled service. -->
<basicHttpBinding>
<binding name="WCFLogServiceProvider.WCFLogService.customBinding0" maxBufferPoolSize="1500000"
maxReceivedMessageSize="1500000"
maxBufferSize="1500000">
<readerQuotas
maxArrayLength="656000"
maxBytesPerRead="656000"
maxDepth="32"
maxNameTableCharCount="656000"
maxStringContentLength="656000"
/>
</binding>
</basicHttpBinding>
</bindings>
对于任何使用支持Silverlight的服务的读者,请注意: 尝试将绑定类型从customBinding更改为basicHttpBinding。变化很大,这将无需进一步更改即可运行。不过,仍然欢迎其他解决方案。
StackOverflow的Hello People,
我有以下问题:
我想将日志文件中的条目自动上传到数据库。应用程序本身正在完成它的工作,但是当将包含日志条目的通用列表传递到另一端的WCF服务时,我得到错误413.
我已经检查过,我是否可以像许多答案中所描述的那样简单地设置maxBufferSize属性,但是当我使用支持Silverlight的服务时(因为使用它的应用程序是跨平台的),我没有basicHttpBinding,但是一个customBinding。我通常(尝试)上传至少一百个日志条目的列表,这些日志条目表示为对象(不是字符串)
这是我的web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" maxRequestLength="2147483647" executionTimeout="300"/>
<customErrors mode="Off"/>
</system.web>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="WCFLogServiceProvider.WCFLogService.customBinding0">
<binaryMessageEncoding />
<httpTransport />
</binding>
</customBinding>
</bindings>
<services>
<service name="WCFLogServiceProvider.WCFLogService">
<endpoint address="" binding="customBinding" bindingConfiguration="WCFLogServiceProvider.WCFLogService.customBinding0"
contract="WCFLogServiceProvider.WCFLogService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- Legen Sie die Werte unten vor der Bereitstellung auf "false" fest, um die Veröffentlichung von Metadateninformationen zu vermeiden. -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- Damit in Fehlern Ausnahmedetails zum Debuggen angezeigt werden, legen Sie den Wert unten auf "true" fest. Legen Sie ihn vor der Bereitstellung auf "false" fest, um die Veröffentlichung von Ausnahmeinformationen zu vermeiden. -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
Um das Stammverzeichnis der Webanwendung beim Debuggen auszuwählen, legen Sie den Wert unten auf "true" fest.
Legen Sie ihn vor der Bereitstellung auf "false" fest, um die Veröffentlichung von Informationen über den Webanwendungsordner zu vermeiden.
-->
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>