Квота максимального размера сообщения WCF
Я пытаюсь вызвать службу WCF (размещенную в службе Windows, а не IIS) и получаю следующую ошибку:
максимальный размер сообщения квоты для превышено количество входящих сообщений для удаленного канала. Увидеть логи сервера для более подробной информации.
Я попытался увеличить MaxReceivedMessageSize и ReaderQuotas до их максимальных значений без каких-либо успехов.
Я также включил ведение журнала и проверил размер messsage, который "отправляется".- Это определенно далеко не максимум. Мы говорим о отправке объекта, который сериализован в 372KB XML.
два вопроса:
кто-нибудь знает, что такое "журналы сервера", на которые ссылается сообщение? Я проверил EventViewer, но там ничего не отображается...
кто-нибудь знает, какие другие настройки конфигурации могут применяться здесь?
4 ответов
ваш вопрос напомнил мне сообщение в блоге Шона Уайлдермута, где у него были проблемы с большими размерами сообщений в приложении Silverlight. Возможно, это поможет вам:
http://wildermuth.com/2009/09/10/Using_Large_Message_Requests_in_Silverlight_with_WCF
Шон говорит:
трюк состоит в том, чтобы изменить customBinding в интернете.config для использования больших значений по умолчанию. Я выбрал 2MB как его разумный размер. Конечно установка их на 2GB, как показано выше, будет работать, но это оставит вас более уязвимыми для атак. Выберите размер, который не больше вашего самого большого запроса, но не слишком велик. Это игра в угадайку. Чтобы установить их, вам нужно добавить их в свою сеть.config должен поместить их на узел httpTransport:
Я думаю, что журналы сервера означают файлы трассировки и ведения журнала, которые создаются при включении этого. Вот MSDN link.
свойства, с которыми я сталкиваюсь с WCF, которые должны иметь более высокое значение в приложениях, которые я пишу, - maxReceivedMessageSize, maxStringContentLength, maxArrayLength и maxBufferSize. Попробуйте увеличить их и посмотрите, что произойдет. WCF может быть болью для отладки, поскольку он любит глотать исключения.
вы можете указать логи сервера и путь в конфигурации приложения следующим образом
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.ServiceModel"
switchValue="Critical, Error, Warning"
>
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="F:\log-data\ServiceTrace.svclog"
/>
</listeners>
</source>
</sources>
</system.diagnostics>
две вещи:
можете ли вы показать нам конфигурацию на стороне сервера и клиента (только соответствующие разделы - конечные точки, конфигурация привязки)
вы изменили значения с обеих сторон (клиент и сервер)??
существует множество настроек размера, на которые вы можете повлиять....