我正在尝试将ASP.NET MVC 4 Web应用程序部署到已经具有其他几个工作ASP.NET应用程序的生产服务器(安装了SP1的Windows Server 2008 R2 [x64],运行IIS 7.5)。我所能得到的只是索引处的403,以及除静态内容以外的所有其他内容的404。该应用程序可以在本地计算机的IIS 7.5实例上正常运行(并且我在Windows 7(最新的64位)上运行。)
<modules runAllManagedModulesForAllRequests="true"/>
aspnet_regiis -iru
UrlRoutingModule-4.0
在web.config中重新添加模块(https://stackoverflow.com/a/16577694/1030925)今天早上,我停止了该站点,停止了应用程序池,重新部署而没有碰到任何东西,并且...有效!但是...如果我碰到配置中的一件小事,无论是使用FileZilla还是使用远程桌面上的IIS控制台,该站点都会崩溃并再次开始以这种方式运行。只有停止站点并一起替换所有文件,我才能够将其备份-尝试仅停止并替换web.config,但这没有用。更改可以像禁用和重新启用“重定向到https”重写规则一样简单。
似乎问题出在回收应用程序池时,无论是通过文件更改还是显式重新启动,我的路由都停止工作。我使用Application_Start和RegisterRoutes以与项目模板相同的方式注册两条路由。我不明白为什么它在标准项目模板中不起作用...
问题出在我的发布设置上。我在Visual Studio 2012中使用以下预编译选项:
通过选择“不合并”或“将所有输出合并到单个程序集”,该问题得到了缓解。
更新:
即使使用其他设置,问题仍然存在,只是没有立即发生。我不得不完全禁用预编译。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句