Я пытаюсь вызвать службу WCF через mex с классической страницы ASP. Я получил вызов, используя данные о MSDN , но если я возвращаю количество данных, превышающее 8 КБ, я получаю исключение, заявляющее:
Максимальная длина содержимого строки
квота (8192) была превышена
чтение данных XML. Эта квота может быть
увеличилась за счет изменения
Свойство MaxStringContentLength на
Используемый объект XmlDictionaryReaderQuotas
при создании читателя XML ...
Исправить это достаточно просто в клиенте .NET: вы можете настроить конфигурацию клиента так, чтобы он связывался с разделом readerQuotas, включая увеличение квоты. Однако, так как я создаю сервис-прозвище для передачи вызова GetObject в ASP, у меня нет доступа к конфигурации для редактирования. Если бы это было приложение VB6, я мог бы использовать dllhost.exe.config, но это не так. Узел bindingConfiguration (и подузлы) не являются параметрами, которые я могу установить в строке моникера.
Любые идеи о том, как я мог повлиять на этот параметр в контексте ASP? Фрагмент ASP со строкой прозвища, указанной ниже:
Dim strXml, moniker, objProxy
moniker="service:mexAddress='http://localhost/SomeApp/SomeServices/SomeService.svc/mex', "
moniker=moniker + "address='http://localhost/SomeApp/SomeServices/SomeService.svc',"
moniker=moniker + "contract=ISomeService, contractNamespace=http://foo.com, "
moniker=moniker + "binding=WSHttpBinding_ISomeService, bindingNamespace=http://foo.com"
Set objProxy = GetObject(moniker)
strXml = objProxy.DoWork("foo", "bar")
Спасибо!