WCF REST При превышении максимальной длины URL возникает ошибка - PullRequest
0 голосов
/ 01 апреля 2011

Я пытаюсь создать службу журналов, используя WCF Rest.Это выглядит примерно так:

[ServiceContract]
public interface ILoggingService
{
    [OperationContract, WebGet(UriTemplate = "/LogError?m={message}")]
    void Log(string message);
}

Я увеличил ограничения в файле конфигурации, чтобы вы могли регистрировать достаточное количество текста.Однако, если я перейду этот предел, служба не примет сообщение.До сих пор я убедился, что текст ниже предела, но это плохая работа.Как мне обойти эту проблему в WCF REST.

ОБНОВЛЕНИЕ

После дальнейшего изучения я должен получить что-то похожее на это?*

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Для сообщения http я думаю, что подпись будет выглядеть как

    [OperationContract]
    [WebInvoke(UriTemplate = "LogError",Method="POST")]
    void Log(string message);

Использование записей отправляет данные в запросе http, а не в URL.

HTTP-запрос get должен использоваться только для чтения данных, публикации для создания, размещения для обновления и удаления для удаления.

http://en.wikipedia.org/wiki/Representational_State_Transfer

1 голос
/ 01 апреля 2011

Я бы порекомендовал не использовать метод GET. Операция, которую вы выполняете - это запись, а не чтение. Если вы используете POST, вы можете отправить тело объекта, используя медиа тип text / plain. Таким образом, вы не ограничены длиной URL.

...