2011-06-06 53 views
2

我有一个奇怪的问题,我正在寻找一些调试指针。当一个页面已从网站中删除时,我执行以下操作:在生产环境中未返回ASP.NET MVC视图

Response.StatusCode = 410; 
Response.Status = "410 Gone"; 
return View("PageRemoved"); 

在开发环境中,它工作正常。在浏览器中,浏览器只需打印:“您请求的页面已被删除。”但视图不呈现。在两种环境中都会返回410状态。有一次,这是在刺激,但我不知道什么时候。

是否有可能IIS拦截410返回码并打印此消息?如果是这样,那么在IIS中这将被设置?你将如何调试? (我在代码中放置了日志语句,代码路径在两种环境中都是相同的。)

回答

5

IIS可能会拦截错误响应并提供自定义页面。您可以为IIS中的410个错误设置自定义错误页面,以便在您的网站上执行指定的URL(或者如果您愿意,可以使用静态页面)。您可以在找到该选项您的站点>错误页面>添加

您也可以尝试在你的控制器动作以下返回结果前:

Response.TrySkipIisCustomErrors = true; 
+0

吉布森先生 - 你是天才!我需要坐下来检查Response对象的每个属性,并查看其中还有哪些其他宝石。谢谢你的帮助! – Guy 2011-06-17 05:13:47