【问题标题】:Upgrading from ASP.Net 2.0 to 4.0 WITHOUT visual studio在没有 Visual Studio 的情况下从 ASP.Net 2.0 升级到 4.0
【发布时间】:2012-12-27 08:59:33
【问题描述】:

环境:

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 编译”选项 – IIS 显示以下错误: 执行此操作时出错 \Windows\Microsoft.Net\Framework64\v4.0.30319\config\web.config 第 141 行 错误:无法识别的元素“folderLevelBuildProviders”

登录到服务器后,我使用 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 的分步指南? 或者,有没有人有这个指南的链接??

提前致谢!

【问题讨论】:

  • 不看源码为什么还要升级呢?您可以简单地创建一个运行 2.0 的 ApplicationPool
  • 我从未说过我无权访问源代码——我说过我无权访问 Visual Studio。
  • 为什么要为 2.0 WebApplication 使用 4.0,而 WebApplication 不使用任何 4.0 功能?
  • 我从来没有说过我不想使用 4.0 的特性;我正在升级,以便可以使用 4.0 功能——但首先(阅读原始帖子)我必须在 IIS 中摆脱“无法识别的元素”folderLevelBuildProviders“错误,然后才能继续升级应用程序——我找到了帖子关于错误,但似乎没有任何效果。

标签: asp.net


【解决方案1】:

好的 -- 终于可以开始工作了,下面是魔法:

检查使用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. 删除网络临时目录中的所有文件/文件夹(用于保存临时 asp.net 文件),必须这样做,否则启动网站时会显示拒绝访问错误。

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

  9. 测试所有页面。

以上对我有用。

【讨论】:

  • 我不能对这个答案投赞成票,因为它对于您自己的应用程序来说过于本地化。 Microsoft 已经提供了有关重大更改的文档,因此使用 Visual Studio 执行升级和必要的更改对于大多数开发人员来说仍然至关重要。 asp.net/whitepapers/aspnet4/breaking-changes
  • 你的回答对我有帮助:)
猜你喜欢
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多