Я пытаюсь добавить веб-приложение в IIS под существующим (корневым уровнем) веб-сайтом.Файл web.config веб-сайта корневого уровня определяет определенные свойства Extensions в 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-файле веб-сайта корневого уровня, потому что другие добавленные сайты используют соответствующие настройки.