我有一个通过控制台应用程序运行的WCF服务器,它将作为一个天蓝色服务运行,所以我不会在ISS中托管它。
我相信它运作良好并通过ajax请求与我的网络应用程序共享数据。但是,当我制作一个接收文件流的服务时,我意识到我的绑定配置根本没有使用。我的WCF在没有绑定部分的情况下工作相同。
我的问题尤其关键是“maxReceivedMessageSize”,因为默认值将我限制为8Ko请求,这是上传文件的问题。
Bindings部分(我可以发表评论):
<webHttpBinding>
<binding name="MyBindingConfig" crossDomainScriptAccessEnabled="true" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Buffered">
<readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" />
<security mode="None" />
</binding>
</webHttpBinding>
服务部分:
<service name="MyData.Service.MyDataServiceRestFull">
<endpoint binding="webHttpBinding"
contract="MyData.Service.IMyDataServiceRestFull" bindingName="MyBindingConfig" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:9997/MyDataServer"/>
</baseAddresses>
</host>
</service>
请注意,我尝试使用basicHttpBinding,我遇到了同样的问题。
答案 0 :(得分:0)
问题是您在<endpoint/>
元素中错误地引用了绑定。当您使用bindingName
属性时,您正在使用bindingConfiguration
属性:
<endpoint binding="webHttpBinding"
contract="MyData.Service.IMyDataServiceRestFull"
bindingConfiguration="MyBindingConfig" />