Я пытаюсь добавить веб-приложение в IIS на существующий (корневой) веб-сайт. Файл web.config веб-сайта корневого уровня определяет определенные расширения поведения в system.serviceModel:
<extensions>
<behaviorExtensions>
<add name="errorHandler" type="API.ErrorHandler.WCFErrorHandlerElement, API.ErrorHandler, Version=1.5.1.832, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
Расширение используется следующим образом:
<serviceBehaviors>
<behavior name="DefaultRESTBasedHTTPSServiceBehavior">
<errorHandler />
</behavior>
</serviceBehaviors>
По определенным причинам мне не разрешено добавлять ссылку на нужную сборку в добавленный сайт, поэтому я хочу отключить наследование расширения таким образом (в web.config добавленного сайта, конечно):
<behaviors>
<serviceBehaviors>
<clear/>
</serviceBehaviors>
<endpointBehaviors>
<clear/>
</endpointBehaviors>
</behaviors>
Я также пытался предотвратить наследование раздела расширений следующим образом: <extensions><clear/></extensions>
. Однако кажется, что <clear/>
не поддерживается для узла расширений.
Тем не менее, я получаю следующее исключение, когда на добавленном веб-сайте возникает ошибка WCF (проблема в строке 191):
Parser Error Message: The type 'API.ErrorHandler.WCFErrorHandlerElement, API.ErrorHandler, Version=1.5.1.832, Culture=neutral, PublicKeyToken=null' registered for extension 'errorHandler' could not be loaded.
Line 189: <serviceBehaviors>
Line 190: <behavior name="DefaultRESTBasedHTTPSServiceBehavior">
Line 191: <errorHandler />
Line 192: </behavior>
Line 193: <behavior name="DefaultSOAPBasedHTTPSServiceBehavior">
Учтите, что невозможно запретить наследование в файле web.config веб-сайта корневого уровня, поскольку другие добавленные веб-сайты используют соответствующие настройки.