MVC内容中断导致空白页面

时间:2010-01-21 19:29:33

标签: asp.net-mvc deployment iis-6 windows-server-2003

我有一个我自己无法解决的最奇怪的问题。

我有这个ASP.NET MVC 1应用程序,使用IIS5在我的本地开发机器上无缝地工作。

我做了相应的更改,通过为http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

中记录的.mvc控制器和aspnet_isapi.dll过滤器添加路由,让MVC在IIS5上工作。

现在是时候将它部署到带有IIS6的Windows Server 2003。我做了与上面文档中描述的完全相同的更改。

结果是,当我访问我的MVC视图时,它的工作原理是它不会抛出任何错误,但页面是空白的!我在事件日志或IIS Web日志中查找了错误,没有。

经过仔细检查后,我通过firefox使用了“查看源代码”,而我在服务器上的空白页就是我得到的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1"><title>

</title>

<style type="text/css">
/*margin and padding on body element
can introduce errors in determining
element position and are not recommended;
we turn them off as a foundation for YUI
CSS treatments. */
body {
margin:0;
padding:0;
}
</style>   

<!--BEGIN: Styles-->   

就是这样,内容在<!--BEGIN: Styles-->之后就被切断了。当我比较在我的本地机器上运行的同一页面上“查看源代码”时所获得的内容,以上所有内容都存在,但不同之处在于<!--BEGIN: Styles-->之后内容将继续HTML外部包含和Javascript外部包含的HTML,其次是<BODY>等...

我正在把头发拉出来,有没有人在Windows Server 2003上向IIS6部署MVC应用程序时遇到此问题?

2 个答案:

答案 0 :(得分:1)

网站上还有其他ISAPI过滤器吗?如果其他应用程序在与您的网站相同的应用程序池中运行,请尝试在其他应用程序池中运行它。此外,如果您有权访问服务器,则可能需要检查事件日志。

答案 1 :(得分:0)

我终于找到了原因!

随着时间的推移,我有一些&lt;%code%&gt;这导致在VIEW中抛出异常。在正常情况下,错误会显示出来。但是我忘了我已经创建了一个自定义的HandleErrorAttribute。在此处理程序中,我确实返回错误,除了错误消息是在标头值而不是HTTP输出流中返回。编写此处理程序是为了在AJAX调用期间处理错误。但在这种情况下,它不是一个AJAX调用。

Duuh me!我一直在这个圈子里,直到我把一个看起来可疑的代码块放到Try,Catch周围。这就是我发现异常确实被抛出的原因,这促使我去追捕那些被抢救的地方!

感谢各位帮忙!