我在将ASP.net MVC 2 RC 2应用程序部署到我的生产箱时遇到了一些麻烦。我在开发和测试方面都运行良好。关键的区别似乎是生产盒尚未升级到IIS 7.5。当我访问该网站时,我得到一个空白页面,如I am getting a blank page while deploying MVC application on IIS中所述。
我已经尝试过那里列出的大部分内容而无济于事。我尝试过使用.net 4的集成和经典配置,并尝试使用特定的控制器和操作,以防它与默认文件有关。奇怪的是,我所做的就是改变路由,以便它使用.mvc扩展,就像IIS6一样。我想避免这样做。我在application_error中添加了日志记录,但是没有任何内容被抛出。我实际上在同一台机器上有一个ASP.net MVC 1应用程序,工作正常。我也尝试过像我的asp.net mvc 1应用程序中的默认文档
string originalPath = Request.Path;
HttpContext.Current.RewritePath(Request.ApplicationPath, false);
IHttpHandler httpHandler = new MvcHttpHandler();
httpHandler.ProcessRequest(HttpContext.Current);
HttpContext.Current.RewritePath(originalPath, false);
这对/ document工作正常,但任何链接仍然返回空白页面。
有人知道我应该做什么吗?
答案 0 :(得分:26)
“HTTP错误”和“HTTP重定向”服务必须添加到“服务器管理器”控制面板中的“Web服务器(IIS)”角色。如果您想获得CSS和Javascript等静态内容,也可以启用“静态内容”服务。
答案 1 :(得分:1)
以为我会添加IIS / MVC可能返回空白页面的另一个原因...假设你有一个应用程序池标识,它是针对SQL数据库授权的。现在假设你有两种不同的身份,一种用于生产,一种用于预生产。现在,进一步假设您的一位尊敬的同事决定将数据库从生产中恢复到预生产中存在的数据库。现在,您已经获得了pre-prod的prod数据库副本,该数据库已获得生产用户的授权,但不适用于预生产用户。在那种情况下,我现在在预生产中获得空白页面,因为预生产用户(以前存在于预生产数据库中)的授权现在已经被数据库的恢复所消除。由于该用户标识是应用程序池标识,因此现在您的MVC应用程序不再拥有该数据库的权限。这导致MVC呈现空白页面,并导致我两天追逐我的尾巴,因为我认为有人改变了Web服务器上的一些IIS设置,但实际上这是一个数据库权限问题。也许这将为将来遇到类似问题的人提供线索。
答案 2 :(得分:0)
我还没有安装HTTP重定向角色,但我还有一个问题,我认为我会在这里记录,以防其他人遇到同样的问题。
我使用7-Zip将程序文件夹压缩并将其传输到prod服务器。当我解压缩它时, Views 文件夹中的web.config文件已添加为名为web.config的文件夹,其中包含配置文件。将文件移出并删除为我排序的文件夹。
线索在事件查看器中,因此如果其他答案没有完全帮助,也请检查。
现在不再为我提供空白页。