簡體   English   中英

在具有4.0應用程序池的站點下運行的具有2.0應用程序池的子應用程序

[英]Child Application with 2.0 App Pool running under a Site with a 4.0 App Pool

情境

我有一個使用ASP.Net 4.0構建的IIS站點應用程序,並以其自己的應用程序v4.0應用程序池運行。 此站點托管的是使用ASP.Net 2.0構建的子應用程序,具有其自己的應用程序池。

<site name="Intranet" id="1" serverAutoStart="true">
    <application path="/" applicationPool="Site-Intranet">
        <virtualDirectory path="/" physicalPath="D:\sites\intranet" />
    </application>
    <application path="/ChildApp" applicationPool="App-ChildApp">
        <virtualDirectory path="/" physicalPath="D:\apps\childapp" />
    </application>
</site>

我的第一個想法是2.0應用程序應使用v2.0應用程序池運行。 這樣做會導致服務器錯誤-無法訪問父站點的web.config編譯設置中的“ targetFramework”屬性。

我理解原因,並且找到了兩種解決方案/解決方法,但是我不完全理解每種解決方案/解決方案的含義。

修正

1.將應用程序的應用程序池設置為v4.0

2.將應用程序的應用程序池保留為v2.0 ,但更改父站點的web.config來破壞<compilation>部分上的繼承:

<location path="." inheritInChildApplications="false">
    <system.web>
        <compilation targetFramework="4.0" debug="true" />
    </system.web>
</location>

問題:

這些修復程序/解決方案實際上是怎么回事?

在方案1中,2.0應用程序是否由4.0 CLR編譯/運行? 假設是這樣,CLR是否嘗試將其作為2.0應用程序運行(即,向后兼容)? 還是只是假設它是4.0 Web應用程序(似乎很危險)?

在場景2中,我知道我們已經阻止子應用程序看到targetFramework屬性,但是2.0 CLR是否真正在編譯/運行該應用程序? 如果是這樣,這是在ASP.Net 4.0站點下安全運行ASP.Net 2.0應用程序所需要的嗎?

我已經多次使用方案2,但從未遇到任何問題。 因此, 是的,這就是在ASP.Net 4.0站點下安全運行ASP.Net 2.0應用程序所需要的全部。

盡管沒有人能回答您的兩個應用程序肯定會以這種方式一起工作。 最好進行完整的系統測試,如果發現任何特定問題,則發布一個新問題。

暫無
暫無

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

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