我一直在本地计算机上开发 ASP.NET 4.0 应用程序,今天我尝试将其部署到服务器。部署后,当我尝试在浏览器中访问该网站时收到以下消息:
解析器错误消息:无法识别属性“targetFramework”。请注意,属性名称区分大小写。
好的,没问题。这意味着服务器仍在运行 ASP.NET 2.0。我只需升级它,对吗?
事情并没有那么简单。
首先,我安装了 .NET Framework v4.0。我按照我在以下网址找到的说明进行操作此链接在 IIS 中启用 ASP.NET ISAPI DLL。当我运行“cscript iisext.vbs /listfile”时,我可以看到列出的 ASP.NET 4.0 DLL,并且它们已启用。但是,我的应用程序的行为没有改变。我仍然收到相同的错误消息。
我怀疑我需要在 IIS 的网站配置中更改 ASP.NET 版本。但是,我找不到任何方法。当我右键单击网站、包含我的应用程序的虚拟目录或 IIS 中的应用程序池,然后从上下文菜单中单击“属性”时,我期望在属性页中找到一个“ASP.NET”选项卡,以便我可以更改该网站/应用程序的 ASP.NET 版本。但是,出于某种原因,没有“ASP.NET”选项卡或属性页。为什么没有?我该如何修复此问题并将我的应用程序切换到 .NET 4.0?
再次,这是 Windows Server 2003 R2,我相信 IIS 版本是 6。
答案1
我认为这会引导你走向正确的方向:
如何在Windows Server 2003 IIS6.0中将网站切换到ASP.NET4.0
如果缺少 ASP.NET-tab,请尝试从 .Net 2.0 框架目录运行 aspnet_regiis.exe -i。
编辑:如果 ASP.NET-tab 仍然丢失:
卸载 IIS(包括 ASP.Net)
重新启动机器。
重新安装 IIS + ASP.net
运行 aspnet_regiis -ir
编辑2:至于为什么缺少 ASP.net 选项卡,这篇文章可能会提供一些线索。
答案2
我知道这个问题的答案已经被接受了,但如果您的网站只是使用了错误的应用程序池,也可能会出现同样的错误。确保您已将 .net 4.0 应用程序池或 asp.net 4.0 应用程序池设置为 Web 应用程序的活动池,并确保应用程序池本身已启动。