[英]Deploying ASP.NET MVC 3 Application Under ASP.NET 3.5 Web Site Sub Folder
我在IIS 7,ASP.NET 3.5中有一個很好的網站。 我剛剛在此網站服務器上安裝了.NET 4.0。 現在,我在此網站上使用Asp.Net 4.0 AppPool添加了一個虛擬目錄(是的,我已將其轉換為Application)。 當我訪問該虛擬目錄時,
There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section defined
為什么此虛擬目錄應用程序嘗試使用根網站的web.config?
正如@BNL所說,我引用了本網站的答案,
步驟1(僅限IIS 7或IIS 7.5)
僅在運行IIS 7或IIS 7.5(包括Windows Vista,Windows Server 2008,Windows 7和Windows Server 2008 R2)的操作系統上才需要執行此步驟。
將父應用程序(運行ASP.NET 2.0或ASP.NET 3.5的應用程序)的Web.config文件中的configSections定義移動到.NET Framework 2.0的根Web.config文件中。 當IIS 7和IIS 7.5本機配置系統合並配置文件的層次結構時,它將掃描configSections元素。 將configSections定義從父Web應用程序的Web.config文件移動到根Web.config文件可有效地將元素隱藏在針對子ASP.NET 4應用程序的配置合並過程中。
在32位操作系統或32位應用程序池上,ASP.NET 2.0和ASP.NET 3.5的根Web.config文件通常位於以下文件夾中:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG
在64位操作系統或64位應用程序池上,ASP.NET 2.0和ASP.NET 3.5的根Web.config文件通常位於以下文件夾中:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG
如果在64位計算機上同時運行32位和64位Web應用程序,則必須將configSections元素上移到32位和64位系統的根Web.config文件中。
當您將configSections元素放在Web.config根文件中時,請將該部分立即粘貼到配置元素之后。 下面的示例顯示了元素移動完成后,根Web.config文件的頂部應該是什么樣子。
注意在以下示例中,為了便於閱讀,對行進行了包裝。
<?xml version="1.0" encoding="utf-8"?>
<!-- The root web configuration file -->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions"
type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting"
type="System.Web.Configuration.ScriptingSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler"
type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication" />
<sectionGroup name="webServices"
type="System.Web.Configuration.ScriptingWebServicesSectionGroup,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization"
type="System.Web.Configuration.ScriptingJsonSerializationSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="Everywhere" />
<section name="profileService"
type="System.Web.Configuration.ScriptingProfileServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication" />
<section name="authenticationService"
type="System.Web.Configuration.ScriptingAuthenticationServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication" />
<section name="roleService"
type="System.Web.Configuration.ScriptingRoleServiceSection,
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false"
allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
步驟2(所有版本的IIS)
無論ASP.NET 4子Web應用程序是在IIS 6上還是在IIS 7(或IIS 7.5)上運行,都需要執行此步驟。
在運行ASP.NET 2或ASP.NET 3.5的父Web應用程序的Web.config文件中,添加一個位置標記,該標記明確指定(對於IIS和ASP.NET配置系統)配置條目僅應用於父Web應用程序。 以下示例顯示了要添加的location元素的語法:
<location path="" inheritInChildApplications="false" >
以下示例顯示了如何使用location標記包裝所有配置部分(從appSettings部分開始,以system.webServer部分結束)。
<location path="" inheritInChildApplications="false" >
完成第1步和第2步后,子ASP.NET 4 Web應用程序將啟動而不會出現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.