Я пытаюсь создать простой не-RESTful JSON-сервис, используя WCF и .NET 4. Мне бы хотелось, чтобы мой сервис мог анализировать сообщение-запрос JSON с определенным форматом, например, так:
{ "MethodNameRequest": { "MethodParam1Name": "ParamValue1", "MethodParam2Name": "ParamValue2" } }
Конечная точка для этой службы должна находиться в одном постоянном URI ("http://myserver/myservice/"), чтобы все методы могли быть вызваны с использованием запроса POST к ней.
Проблема заключается в том, что всякий раз, когда я пытаюсьобъявить два (или более) методов, используя один и тот же «UriTemplate» и тот же HTTP-глагол «POST» (используя WebInvokeAttribute), например:
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, Method = "POST", UriTemplate = "")]
public string Method1()
{
return "Method1";
}
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json, Method = "POST", UriTemplate = "")]
public string Method2()
{
return "Method2";
}
Я получаю следующее исключение:
В контракте '' есть несколько операций с методом 'POST' и UriTemplate, эквивалентным ''. Каждая операция требует уникальной комбинации UriTemplate и Method для однозначной отправки сообщений. Используйте WebGetAttribute или WebInvokeAttribute, чтобы изменить UriTemplateи значения метода операции.
Любые идеи о том, как я могу настроить WCF, чтобы разрешить это?