我有一个在http://example.com运行的WCF服务(.NET 3.5)应用程序;它的web.config配置为JSONP编码:
<extensions>
<bindingElementExtensions>
<add name="jsonpMessageEncoding" type="My.SharePoint.WebServices.JsonpBindingExtension, My.SharePoint.WebServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bindingElementExtensions>
</extensions>
其中类My.SharePoint.WebServices.JsonpBindingExtension
是应用程序的一部分。
现在,我们正在http://example.com/other-services/部署另一个WCF应用程序,这是我遇到问题的地方 - 当我尝试调用此服务时,我收到错误,它无法加载My.SharePoint.WebServices程序集,即使我没有在其他应用程序中使用它。看起来顶级应用程序的web.config与此web.config合并。
有没有办法在此子应用程序中删除/取消注册jsonpMessageEncoding
?
我希望做类似的事情:
<extensions>
<bindingElementExtensions>
<remove name="jsonpMessageEncoding"/>
</bindingElementExtensions>
</extensions>
但此配置部分没有remove
。
有什么想法吗?
答案 0 :(得分:0)
如果您的新应用程序直接部署在第一个应用程序Web配置确实合并。遗憾的是,扩展无法删除 - 即使相关的配置类也不支持除add方法之外的任何内容,原因是首先处理对add的调用,并且在到达预期的删除之前已经解析了类型。
作为解决方法(未经测试),您可以尝试使用location element in your root application web.config并仅为根应用程序定义扩展。