【问题标题】:Self Hosted (console) WCF configuration自托管(控制台)WCF 配置
【发布时间】:2017-03-02 10:34:51
【问题描述】:

我有一个通过控制台应用程序运行的 WCF 服务器,它将作为 azure 服务运行,因此我不将其托管在 ISS 中。

我相信它运行良好并通过 ajax 请求将数据共享到我的网络应用程序。但是当我创建一个接收文件流的服务时,我意识到我的绑定配置根本没有被使用。我的 WCF 工作相同,没有绑定部分。

我的问题特别关注“maxReceivedMessageSize”键,因为默认值将我限制为 8Ko 请求,这是上传文件的问题。

绑定部分(我可以评论):

<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 并且遇到了同样的问题。

【问题讨论】:

标签: rest wcf


【解决方案1】:

问题是您在&lt;endpoint/&gt; 元素中错误地引用了您的绑定。您正在使用 bindingName 属性,而您应该使用 bindingConfiguration 属性:

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

【讨论】:

  • 感谢您的回复,我试过了,但 WCF 仍然使用 16Ko 文件回答 HTTP 413 错误(请求实体太大)...
  • 在服务器上启用跟踪,这样您就可以准确地知道超出了哪个配额...
  • System.ServiceModel.ProtocolException: Le quota de taille maximale autorisée pour les messages entrants (65536) a été dépassé。 Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l'élément de la liaison appropriée。
  • 您确定&lt;service/&gt; 元素中的name 属性正确吗?这可能是因为它与正确的服务类名称不匹配而完全被忽略了......
猜你喜欢
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-02
  • 1970-01-01
相关资源
最近更新 更多