我有一个针对 .NET 4.0 框架的ASP.NET网站应用程序,该应用程序使用WSE 3.0(Microsoft.Web.Services3.dll)公开了一些Web服务以确保安全性。我在使用服务时遇到 SoapHeaderException:SOAP标题安全性未被理解错误。当应用程序针对.NET 2.0时,我有一个非常类似的设置工作正常,我比较了配置文件,但没有发现任何差异。
使用Reflector我可以看到 Microsoft.Web.Services3.dll 引用 System.Web.Services,Version = 2.0.0.0 ,但是当我使用Fuslogvw.exe (Assembly Binding Log Viewer)检查程序集绑定我看到 在框架配置中找到的版本重定向:2.0.0.0重定向到4.0.0.0 。我已经检查了各种机器级配置文件,并且没有明确引用重定向,所以我很确定重定向是由于Microsoft Publisher Policy链接到程序集中。我尝试使用publisherPolicy Element来阻止使用下面显示的配置进行重定向,但似乎没有任何影响。我也尝试将dependentPolicy元素移到dependentAssembly元素之外,使它一般适用,但这也无济于事。
任何想法我做错了或强制装配的其他方法绑定到装配的特定版本?
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Services, Version=2.0.0.0" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<publisherPolicy apply="no" />
</dependentAssembly>
</assemblyBinding>
</runtime>