我在地址上使用wsHttpBinding托管服务(主机基地址为http://localhost/MyService)。
在我的合约(IMyService
)中,我有:
[OperationContract]
[WebInvoke(
Method = "GET",
UriTemplate = "/")]
Stream GetRootPage();
如果我运行我的服务并浏览到http://localhost/MyService/,它可以正常工作。如果我浏览到http://localhost/MyService,我会看到一个默认的WCF页面,表明没有为此服务启用元数据发布服务。
我尝试过各种UriTemplate组合:
与服务基地址结合使用:
所有这些都会产生相同的行为。在某些时候,我可以发誓这是有效的,但我想我可能在UriTemplate中使用了一个子路径。我知道如果我有一个“/ abc / 123 /”的UriTemplate,我可以浏览到/ abc / 123(没有斜杠),因为WCF实际上会自动发出HTTP 307重定向。
我使用的是.NET 4.0。
答案 0 :(得分:3)
我想出了如何做到这一点:
确保禁用默认WSDL生成(或至少不使用默认URL):
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
确保已停用帮助网址:
<serviceDebug httpHelpPageEnabled="false" httpsHelpPageEnabled="false" />
答案 1 :(得分:0)
我认为您的问题已在Simple URL routes in WCF Rest 4.0 without trailing slash中得到解答。
你能核实一下吗?