簡體   English   中英

web.config中的奇怪部分

[英]Strange section in web.config

我在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>

這到底是什么?

謝謝

這是一個綁定重定向 ,是.NET通常希望將引用的程序集綁定到其所針對的確切版本的轉義點。 通常,如果程序是針對特定DLL的X版本構建的,則即使有較新版本,.NET也會嘗試加載X版本。 這是為了避免由於新版本中的行為更改(包括錯誤修復!)而引起的意外。 綁定重定向指定了另一種策略,即.NET應該加載“ newVersion”中指定的版本。

此特定的重定向告​​訴程序:當程序集嘗試加載版本號在1.0.0.0和1.1.0.0之間的System.Web.Extensions.dll版本時,請不要加載要求的版本:加載版本3.5 .0.0代替。

(在這種情況下,“程序” ==“網站”。)

它通常用於強制程序使用比其所針對的版本更新的DLL版本,而無需針對較新的版本進行重新編譯。

根據此鏈接 ,它使您可以使用程序集的較新版本。

我的理解是,它告訴您的應用程序使用System.Web.Extensions的3.5版本,而不是1.0或1.1。 換句話說,“如果需要1.0或1.1,請改用3.5”。

簡而言之,它指定如果應用程序依賴於System.Web.ExtensionsSystem.Web.Extensions.Design版本1.0.0.0至1.1.0.0,則系統應加載並使用程序集的3.5.0.0版本。 您可以在有關dependentAssemblybindingRedirect的文檔中閱讀有關此內容的信息。

http://msdn.microsoft.com/zh-CN/library/0ash1ksb.aspx

它基本上是用來告訴程序如果試圖加載1.0.0.0或1.1.0.0,則加載System.Web.Extenstions.dll的3.5.0.0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM