我有一个使用wsHttpBinding在地址上托管的服务(主机基地址为http://localhost/MyService)。
在我的契约(IMyService)中,我有:
[OperationContract]
[WebInvoke(
Method = "GET",
UriTemplate = "/")]
Stream GetRootPage();
如果我运行我的服务并浏览http://localhost/MyService/,它可以正常工作。如果我浏览http://localhost/MyService,我会看到一个默认的WCF页面,指示此服务未启用元数据发布服务。
我尝试了各种UriTemplate的组合:
- UriTemplate = ""
- UriTemplate = "/"
- UriTemplate = "*"
与服务基地址结合使用:
- http://localhost/MyService
- http://localhost/MyService/
所有这些都产生相同的行为。在以前的某个时候,我确信这是有效的,尽管我认为我可能在UriTemplate中使用了子路径。我知道如果我有一个UriTemplate为“/abc/123/”,我可以浏览/abc/123(没有尾随斜杠),因为WCF实际上会自动发出HTTP 307重定向。
我正在使用.NET 4.0。