有没有办法在没有IIS的情况下使用WCF自定义友好URL?
有没有办法在没有IIS的情况下使用WCF自定义友好URL?
特别是我希望通过我自己的Windows服务中托管的app.config来做这样的事情:
[WebGet(UriTemplate = "foo/{id}")] public string GetFoo(string id) { ... }
是的 – 在你自己的NT服务中托管这个,并在app.config
中定义一个http基地址。 您在服务合同中定义的URI模板将脱离该基址:
然后你的URI模板将被添加到这个基地址,所以在这种情况下,你可以调用GetFoo
方法:
http://YourServer:9091/Services/foo/42
更新:我刚刚在这里重新创建了这个,问题是:你的URI模板定义了一个名为{id}
的参数,但你应用这个URI模板的方法在它的参数列表中没有任何名为id
的参数:
[WebGet(UriTemplate = "foo/{id}")] public string GetFoo(string fooID)
你需要确保这些东西匹配! 使用给定的URI模板,您需要将方法声明更改为:
[WebGet(UriTemplate = "foo/{id}")] public string GetFoo(string id)
(参见参数 – 它的名字现在是id
)然后你应该没问题 – 至少它对我来说效果很好。