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