这是我第一次尝试通过托管在 Windows 服务中的 WCF 提供服务。我注意到,如果我在 UriTemplate 中做错了什么,它会完全破坏一切,我不知道为什么。
例子:
在第一个代码示例中,一切正常。该服务等待我定义的基地址并返回我期望的信息。
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetDetail?id={id}", BodyStyle = WebMessageBodyStyle.WrappedResponse, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
MyDetail GetDetail(int id);
}
在这个示例中,我将所有内容更改UriTemplate = "/GetDetail?id={id}"
为UriTemplate = "/GetDetail/{id}"
中断。该服务甚至不等待我配置的基地址。
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetDetail/{id}", BodyStyle = WebMessageBodyStyle.WrappedResponse, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
MyDetail GetDetail(int id);
}
我不明白这种变化如何导致一切都失败?它不应该只是无法处理 GetDetail 调用而不破坏整个系统吗?
还要对此进行扩展,如何将日志记录添加到我的服务中。