我正在尝试在现有(根级别)网站下的 IIS 中添加 Web 应用程序。根级网站的 web.config 文件在 system.serviceModel 下定义了某些 behaviorExtensions:
<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 中禁止继承,因为其他添加的网站正在使用相关设置。