自托管(控制台)WCF配置

时间:2017-03-02 10:34:51

标签: rest wcf

我有一个通过控制台应用程序运行的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,我遇到了同样的问题。

1 个答案:

答案 0 :(得分:0)

问题是您在<endpoint/>元素中错误地引用了绑定。当您使用bindingName属性时,您正在使用bindingConfiguration属性:

<endpoint binding="webHttpBinding"
          contract="MyData.Service.IMyDataServiceRestFull"
          bindingConfiguration="MyBindingConfig" />