Максимальная квота на количество символов в таблице имен

Когда программа svcutil используется для создания метаданных для службы, может выводиться следующее сообщение:

«Ошибка: не удается получить метаданные из http://localhost:8000/somesservice/mex». Превышена квота максимального числа символа в таблице имен (16384) при чтении данных XML. Таблица имен является структурой данных, в которой хранятся строки, обнаруженные при обработке данных XML. Триггером этой квоты могут служить длинные XML-документы с неповторяющимися именами элементов, именами атрибутов и значениями атрибутов. Эту квоту можно увеличить, изменив свойство MaxNameTableCharCount объекта XmlDictionaryReaderQuotas, используемого при создании средства чтения XML.

Эта ошибка может вызываться службой, которая возвращает крупный WSDL-файл на запрос метаданных службы. Проблема состоит в превышении квоты символов для программы svcutil.exe. Это значение задается, чтобы предотвратить атаки типа «отказ в обслуживании». Можно увеличить квоту, указав следующий файл конфигурации для svcutil.

В следующем файле конфигурации показано, как задать квоты модуля чтения для svcutil.

Копировать

<?xml version="1.0" encoding="utf-8"?><configuration> <system.serviceModel> <bindings> <customBinding> <binding name="MyBinding"> <textMessageEncoding> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> </textMessageEncoding> <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> </binding> </customBinding> </bindings> <client> <endpoint binding="customBinding" bindingConfiguration="MyBinding" contract="IMetadataExchange" name="http" /> </client> </system.serviceModel></configuration>

Создайте новый файл с именем svcutil.exe.config и скопируйте в него пример XML-кода.Затем поместите файл в один каталог с файлом svcutil.exe.При следующем запуске программа svcutil.exe будет использовать новые параметры.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: