400使用WCF和单声道的错误请求(无效主机)

时间:2011-04-12 23:38:54

标签: c# wcf mono

我尝试在mono下运行C#WCF服务时得到Bad Request (Invalid host)。此服务是应用程序的一部分,而不是使用Web服务器托管。

我已使用以下内容配置了我的服务:

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="DefaultServiceBehavior">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="false" />
      </behavior>
    </serviceBehaviors>
  </behaviors>

  <services>
    <service behaviorConfiguration="DefaultServiceBehavior" name="MyServices.TaskService">
      <endpoint address="V1" binding="basicHttpBinding" contract="MyServices.ITaskServiceV1" />
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost:8731/MyServices/Tasks" />
        </baseAddresses>
      </host>
    </service>
  </services>
</system.serviceModel>

当我尝试访问http://localhost:8731/MyServices/Tasks或其任何端点(包括?wsdl)时,我收到400错误。

我已经使用.net运行时成功部署了这个,但是无法弄清楚使用mono进行部署有什么问题。任何帮助将不胜感激。

编辑单声道版本:2.10.1

1 个答案:

答案 0 :(得分:1)

我今天遇到了同样的问题。 在.net 3.5应用程序中托管wcf服务有效但使用mono 3.2.2的相同代码会产生无效的主机错误响应。 所以我检查了单声道源并发现mono使用区分大小写的比较从请求URL搜索有效端点。更改了我的网址以适应我的服务配置中的案例解决了问题。