Хотя максимума нет, вы можете столкнуться с проблемами с Metadata Exchange
- и следующим значением конфигурации и его значением по умолчанию: maxNameTableCharCount
.
При попытке добавить новую функцию к существующему функционированию WCF Service
я обнаружил ошибки при попытке " Обновить ссылку на службу " - относительно значения по умолчанию maxNameTableCharCount
, слишком маленького для обработки размер mex
перевода.
Можно переопределить значения по умолчанию для Metadata Exchange
, добавив пользовательский mex binding
в конфигурацию сервера.
Вы можете увидеть сообщение об ошибке, подобное приведенному ниже, при попытке добавить или обновить ссылку на службу, если превышено значение конфигурации:
Превышена максимальная квота числа именных символов (16384)
при чтении данных XML. Nametable - это структура данных, используемая для
хранить строки, встречающиеся при обработке XML - длинные XML-документы
с неповторяющимися именами элементов, именами атрибутов и значениями атрибутов
может вызвать эту квоту. Эта квота может быть увеличена путем изменения
Свойство MaxNameTableCharCount для объекта XmlDictionaryReaderQuotas
используется при создании читателя XML. Строка 1, позиция 332845.
Конечные точки Mex сервера должны быть указаны следующим образом:
<endpoint address="mex"
binding="customBinding"
contract="IMetadataExchange"
name=""
bindingConfiguration="customMex"
listenUriMode="Explicit" />
С пользовательским блоком привязки, указанным следующим образом:
<customBinding>
<binding name="customMex">
<textMessageEncoding>
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</textMessageEncoding>
<httpTransport transferMode="Buffered" maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647"/>
</binding>
</customBinding>
Это может помочь, если у вас возникли проблемы с большим количеством методов в службе.