Windows server 2008 R2上的.NET Framework 4 RTM
我刚刚在Windows SErver 2008 R2 x64上安装了.NET 4,我收到一个ASP.NET MVC应用程序的500个内部服务器错误,该应用程序以前在3.5上运行良好。该应用程序从targeting 3.5升级到target 4,我今天亲自在我的开发机器上构建了它(在VS-Properties中更改为.NET Framework 4) 在服务器上,我通过Web平台安装程序自动安装了.NET Framework 4客户端配置文件和完整配置文件。ASP.NET MVC 2也通过平台安装程序安装。我在IIS中创建了一个新的.NET4应用程序池,并将web应用程序放在其中 此外,我在web.config中关闭了自定义错误,但即使如此,也不会显示详细的错误-只有普通的IIS 7.5 500内部服务器错误Windows server 2008 R2上的.NET Framework 4 RTM,.net,.net-4.0,windows-server-2008,.net,.net 4.0,Windows Server 2008,我刚刚在Windows SErver 2008 R2 x64上安装了.NET 4,我收到一个ASP.NET MVC应用程序的500个内部服务器错误,该应用程序以前在3.5上运行良好。该应用程序从targeting 3.5升级到target 4,我今天亲自在我的开发机器上构建了它(在VS-Properties中更改为.NET Framework 4) 在服务器上,我通过Web平台安装程序自动安装了.NET Framework 4客户端配置文件和完整配置文件。ASP.NET MVC 2也通过平台安装
有什么建议吗?嗯,这是一个非常奇怪和有趣的问题。。但我很乐意尽我所能帮助你。 我现在有一个带有Server2008R2的VPS,我在上面安装了.NET4RTM和MVC2。不要认为我遇到了配置问题,但我必须帮助其他人解决这个问题 起初,你能检查一下吗。。在IIS管理器、Isapi和Cgi限制中,是否有.NET4?哪个版本?它们是否已启用 如果你在IIS中访问你的应用程序池,你的应用程序池是否为新版本.NET 4?仔细检查此项,您的应用程序池可能被设置为不同的.NET 4 framework版本,该版本已被删除/禁用。你可以尝试用一个新的干净的应用程序池创建一个新网站,只是为了测试它是否有效 如果什么都不起作用,您可以尝试使用
aspnet\u regiis-i在IIS中重新注册.NET
如果这些都不起作用,我将尝试提供更多的选项/想法我通常通过在IIS上重新安装ASP.NET支持文件来解决此类问题
以管理员权限打开命令提示符(命令提示符、右键单击、以管理员身份运行)
输入:
cd%WINDIR%\Microsoft.NET\Framework64\v4.0.XX.XX
aspnet\u regais-i
完成了。您可能需要打开IIS并将应用程序池重新分配给新创建的“ASP.NET 4.0集成版”(或经典版)。我的ASP.NET MVC应用程序也存在一些小的兼容性问题。可能你也有同样的问题
我使用NoSessionControllerFactory
禁用基于和的会话状态。更新到.NET4.0后,我的应用程序无法运行。我还收到了500个内部服务器错误。从Global.asax.cs对NoSessionControllerFactory
进行了一些小的修改后,整个世界都很正常。固定代码如下所示:
public class NoSessionControllerFactory: DefaultControllerFactory {
protected override IController GetControllerInstance (RequestContext requestContext, Type controllerType) {
if (controllerType != null) {
var controller = base.GetControllerInstance (requestContext, controllerType);
((Controller)controller).TempDataProvider =
new DummyTempDataProvider ();
return controller;
}
else
return null;
}
}
public class DummyTempDataProvider: ITempDataProvider {
public IDictionary<string, object> LoadTempData (ControllerContext controllerContext) {
return new Dictionary<string, object> ();
}
public void SaveTempData (ControllerContext controllerContext,
IDictionary<string, object> values) {
}
}
我打赌这是有关应用程序的配置问题。ASP.NET 4的配置不同于3.5
另外,请确保您的web应用程序引用的DLL来自.NET 4,而不是.NET 3.5。您是否只在服务器或整个框架上安装了客户端配置文件?我建议首先打开错误,了解更多信息…@Mauricio:正如问题中所说,我安装了客户端配置文件@罗兰德:你是说开还是关?当前自定义错误已关闭,因此它应该显示详细的异常。MVC是否使用客户端配置文件运行?你试过安装完整的框架吗?我把这个问题留到.NET 4 RTM之前,现在我们有了它,我删除了RC并通过Web平台安装程序安装了4 RTM。同样的错误仍然存在,应用程序或系统日志中没有事件,什么都没有。我的配置很好,我有新的ASP.NET 4应用程序池。问题是我在虚拟目录中运行我的应用程序,而Web.Config继承似乎有问题。我刚刚测试了在IIS中创建一个新的根网站,并将其放入.NET 4集成应用程序池,效果良好。转到IIS管理器,检查“Isapi和Cgi限制区域”。如果.NET 4在那里-确保它被允许执行。如果.NET不在那里-你必须先运行“aspnet_regiis-i”。
protected void Application_Start () {
RegisterRoutes (RouteTable.Routes);
// see https://stackoverflow.com/questions/884852/how-can-i-disable-session-state-in-asp-net-mvc
ControllerBuilder.Current.SetControllerFactory (new NoSessionControllerFactory ());
}