2

环境:

Windows Server 2008 R2 企业版 IIS 7.5.7600.26385

问题: 我有一个现有的网站,目前正在运行 ASP.Net 2.0 版,并希望迁移到 ASP.Net 4.0。我没有 Visual Studio,所以我不能简单地使用“升级向导”来执行此任务。这是我到目前为止所尝试的:

在 IIS 中:

  1. 创建一个新的应用程序池名称“aspnet_v40”并配置为使用 ASP.Net 4.0(集成)
  2. 停止网站
  3. 将网站更改为新的应用程序池(“aspnet_v40”)
  4. 单击网站“.Net Compile”选项 - IIS 显示以下错误:执行此操作时出错 \Windows\Microsoft.Net\Framework64\v4.0.30319\config\web.config Line #141 Error: Unrecognized element '文件夹LevelBuildProviders'

登录到服务器后,我使用 aspnet_regiis 程序列出并验证已安装的 ASP.Net 版本(我以为我会从所有目录中得到相同的答案,但报告的内容如下):

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -lv

2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

2.0.50727.0 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

C:\Windows\Microsoft.NET\Framework64\v2.0.50727>aspnet_regiis -lv

2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

2.0.50727.0 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

C:\Windows\Microsoft.NET\Framework\v4.0.30319>aspnet_regiis -lv

2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -lv

2.0.50727.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll

4.0.30319.0 c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

显然,我缺少一些步骤:

  1. 如何摆脱“无法识别的元素'folderLevelBuildProviders'”错误。
  2. 从 2.0 迁移到 4.0 需要哪些步骤(命令)(即:web.config 中的新元素或更改元素??)

有没有人在没有 Visual Studio 的情况下从 2.0 升级到 4.0 的分步指南?或者,有没有人链接到这样的指南?

提前致谢!

4

1 回答 1

3

好的——终于让事情开始了,下面是魔法:

检查使用 appcmd.exe 列出已配置的 isapiFilters:

C:\Windows\System32\inetsrv>appcmd.exe 列表配置-section:system.webServer/isapiFilters

<system.webServer>
  <isapiFilters>
    <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64" />
    <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32" />
  </isapiFilters>
</system.webServer>

以上显示版本 4.0 过滤器不存在,因此我发出以下命令:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -iru

Start installing ASP.NET (4.0.30319).
....Finished installing ASP.NET (4.0.30319).

现在验证版本 4.0 是否存在:

C:\Windows\System32\inetsrv>appcmd.exe 列表配置-section:system.webServer/isapiFilters

<filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
<filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
<filter name="ASP.Net_2.0_for_V1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
<filter name="ASP.Net_4.0_64bit" path="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv4.0,bitness64" />
<filter name="ASP.Net_4.0_32bit" path="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv4.0,bitness32" />

现在将站点从 2.0 版更新到 4.0 版:

  1. 创建一个使用 4.0 版的应用程序池 - 如果需要,请务必将“启用 32 位应用程序”选项设置为 true。

  2. 停止正在升级的网站。

  3. 右键单击网站 -> 管理网站... -> 高级设置

  4. 将“应用程序池”更改为步骤 1 中创建的 4.0 版本应用程序池。单击确定 -> 确定

  5. 单击“.Net Compilation”选项并确认“Assemblies”部分使用的是 4.0 版。

  6. 使用4.0框架重新编译网站DLL,存放在/bin目录下。

  7. 删除 web 临时目录中的所有文件/文件夹(用于保存临时 asp.net 文件),必须这样做,否则在启动网站时将显示拒绝访问错误。

  8. 右键单击网站 -> 管理网站 -> 开始

  9. 测试所有页面。

以上对我有用。

于 2013-01-13T23:51:20.700 回答