我的 windows server 2008 R2 当前安装了 .NET framework v4.0.3x。
我有一个 ASP.NET MVC 4.5.1 应用程序,当我部署时出现以下错误:
The 'targetFramework' attribute in the <compilation> element of the Web.config file is used only to target version 4.0 and later of the .NET Framework (for example, '<compilation targetFramework="4.0">'). The 'targetFramework' attribute currently references a version that is later than the installed version of the .NET Framework. Specify a valid target version of the .NET Framework, or install the required version of the .NET Framework.
Source Error:
Line 37: </appSettings>
Line 38: <system.web>
Line 39: <compilation debug="true" targetFramework="4.5.1" />
Line 40: <httpRuntime targetFramework="4.5.1" />
Line 41: <pages>
我需要在服务器上安装一些东西还是我没有在我的 /bin 文件夹中部署正确的 dll 的问题?
我安装了 IIS 7.5.7x。
您需要在您的服务器上安装当前的.Net Framework。在此之后它应该可以工作,因为 IIS 在 4.0 和 4.5 之间没有区别。此外,您需要在 IIS 管理中选择正确的目标框架。
这就是这样做的。
您看到的错误消息表明您的 Web.config 文件中元素的 targetFramework 属性中指定的 .NET Framework 版本高于安装在服务器上的 .NET Framework 版本。
在您的情况下,您的 Web.config 文件指定 targetFramework="4.5.1",这需要在服务器上安装 .NET Framework 4.5.1。但是,您提到您的服务器安装了 .NET Framework 4.0.3x。
要解决此问题,您有几种选择:
更新服务器上的 .NET Framework:您可以在服务器上下载并安装 .NET Framework 4.5.1 或更高版本,以匹配 Web.config 文件中指定的版本。
更改 Web.config 文件中的 targetFramework 属性:如果您无法更新服务器上的 .NET Framework,您可以将 Web.config 文件中的 targetFramework 属性更改为 .NET Framework 支持的版本安装在您的服务器上。例如,您可以将其更改为 targetFramework="4.0" 以定位 .NET Framework 4.0.
使用不同的服务器:如果更新 .NET Framework 或更改 targetFramework 属性不可行,您可以考虑将应用程序部署到安装了所需版本的 .NET Framework 的不同服务器。
除了 .NET Framework 版本,您还应确保已将所有必需的 DLL 部署到您的 /bin 文件夹中,以便您的 ASP.NET MVC 应用程序正常运行。您可以使用 ILSpy 或 Reflector 等工具检查应用程序的程序集版本和依赖项。