ASP.NET 4.5 MVC 4在Windows Server 2008 IIS 7上不起作用

显然,我缺少一些东西,无法在IIS 7上的Windows Small Business Server 2008上部署简单的ASP.NET MVC 4,.NET 4.5应用程序。


已安装.NET Framework 4.5。


是否应该在应用程序的“应用程序池”基本设置上看到该版本(4.5)?目前,我只有2.0和4.0,因为4.5就像3.5一样,仅添加在4.0框架之上,我想这很正常。


当浏览主页时,出现以下错误:


403-禁止访问:拒绝访问。您无权使用您提供的凭据查看此目录或页面。


当我请求名为Page / page / index的唯一控制器时,我得到了404 not found页面。像ASP.NET进程一样,永远不会获得http请求。


我可以请求一个简单的HTML页面。


应用程序池设置为.NET 4.0,并集成为托管管道模式。


NETWORK SERVICE对目录具有读/写访问权限。


从VS2012开始,该应用程序完美运行。


我对此处的错误一无所知,搜索引擎查询并没有太大帮助。


有没有人会暗示,将不胜感激。谢谢


编辑


dll已在bin文件夹中,例如System.Web.Mvc,System.Web.Razor等。


我创建了一个空的test.aspx页面,以确保asp.net worker进程正在获取请求,是的,该页面还可以。因此,尽管我在该服务器上运行了ASP.NET MVC 3 Web应用程序,但看来MVC路由无法正常工作。


安装.NET 4.5之后,我做了一个aspnet_regiis -iru,以防万一,在应用程序上添加了一个aspnet_client文件夹,但这仍然不能解决问题。


在“ IIS身份验证”部分启用了“匿名身份验证”,并且“授权”显示允许所有用户使用。


已安装ASP.NET MVC 4,我只是做了修复以确保。


即使安装了ASP.NET MVC 4,标准IIS仍会返回来自请求/ page / index操作的404错误,而不是标准的ASPNET错误。因此,确实确实好像MVC 4框架没有正确安装,我只是仔细检查并进行了修复。我可以在哪里继续调查?


@Mystere Man,我已经更改了匿名身份验证以使用应用程序池标识,停止,启动应用程序,并且仍然是相同的错误。看起来好像ASP.NET MVC 4没有接受请求。


这是web.config的一部分:


  <system.webServer>

    <validation validateIntegratedModeConfiguration="false" />

    <handlers>

      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />

      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />

      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />

      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />

      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

   

哆啦的时光机
浏览 719回答 3
3回答

当年话下

尝试使用此:<system.webServer>&nbsp; &nbsp; <modules runAllManagedModulesForAllRequests="true" />&nbsp; &nbsp; ...</system.webServer>编辑:上面的解决方案适用于.NET 3.5或更低版本。如果使用的是.NET 4.0或更高版本,则可能要尝试安装IIS7 QFE此外,这篇文章值得一读,了解这两个之间的区别。

慕少森

我有一个类似的问题。我尝试了此处描述的许多解决方案(Web.Config system.webServer配置条目等),但均无济于事。最后,我发现了特定安装的问题所在。我将网站发布到本地文件系统,然后将这些文件复制到服务器上。事实证明文件Global.asax没有成为已发布文件的一部分。复制完该文件后,错误消失了。
打开App,查看更多内容
随时随地看视频慕课网APP