web.config中的奇怪部分

时间:2010-01-16 23:37:28

标签: .net asp.net

我在web.config中注意到了这一点:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

究竟是什么?

由于

5 个答案:

答案 0 :(得分:3)

这是一个绑定重定向,它是.NET通常希望将引用的程序集绑定到它所构建的确切版本的逃避口号。通常,如果程序是针对特定DLL的X版本构建的,那么.NET将尝试加载版本X,即使有更新的版本可用。这是为了避免由于更新版本中的行为更改(包括错误修复!)而产生的意外。绑定重定向指定另一个策略,表示.NET应该加载“newVersion”中指定的版本。

此特定重定向告诉程序:当程序集尝试加载版本号介于1.0.0.0和1.1.0.0之间的System.Web.Extensions.dll版本时,请不要加载要求的版本:加载版本3.5.0.0而不是。

(在这种情况下,“program”==“网站。”)

它通常用于强制程序使用比它构建的版本更新的DLL版本,而不是针对更新版本重新编译它。

答案 1 :(得分:1)

根据this link,它允许您使用较新版本的程序集。

答案 2 :(得分:1)

我的理解是,它告诉您的应用程序使用版本3.5的System.Web.Extensions,而不是1.0或1.1。换句话说,“需要1.0或1.1,而不是使用3.5。”

答案 3 :(得分:1)

简而言之,它指定如果应用程序依赖于System.Web.ExtensionsSystem.Web.Extensions.Design,版本1.0.0.0到1.1.0.0,则系统应加载并使用版本3.5.0.0的程序集。您可以在dependentAssemblybindingRedirect的文档中了解相关信息。

答案 4 :(得分:0)

http://msdn.microsoft.com/en-us/library/0ash1ksb.aspx

它主要用于告诉程序加载3.5.0.0的System.Web.Extenstions.dll,如果它试图加载1.0.0.0或1.1.0.0