Это моя первая попытка сервиса через WCF, который размещен в службе Windows. Я заметил, что если я что-то неправильно сделаю в UriTemplate, он полностью сломает все, и я не знаю почему.Изменение UriTemplate на интерфейсе WCF приводит к сбою всего обслуживания.
Пример:
В первом примере кода все отлично работает. Служба ждет моего определенного базового адреса и возвращает ожидаемую информацию.
[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, а не нарушать всю систему?
Также, чтобы расширить это, как добавить регистрацию в свою службу.
Да я понимаю, тот факт, что они должны быть строками, но я не знаю, почему, что один из них неправильно определены причины целого webservice терпеть неудачу? – CathalMF
При запуске активация WCF проверяет декларацию и конфигурацию сервиса. Вы не можете частично запустить службу WCF. – Cybermaxs