我在ASP.NET 4.0和IIS7中编写一个HTTP处理程序,我需要生成一个文件未找到条件。
我复制了下面的代码从Mathew McDonald的新书,ASP ASP.Net 4在C#2010.(响应变量是当前HttpResponse的一个实例)。
response.Status = "File not found"; response.StatusCode = 404;
如果,而不是上面的行,我使用以下:
response.Status = "404 Not found";
然后一切似乎工作正常。事实上,我甚至看到response.StatusCode设置为404自动。
我的问题是,我不希望这在生产服务器上失败。所以如果我能理解“正确”的方式来实现这一点,我会感觉好多了。为什么第一种方法适用于马修·麦当劳,但不适合我?而第二种方法总是可靠的?
任何人都可以提供任何提示?
解决方法
这是因为
Status属性是发送给客户端的完整状态行,不仅是消息。
你可以写:
response.Status = "404 File not found";
或者,优选地:
response.StatusCode = 404; response.StatusDescription = "File not found";
请注意,根据其文档,HttpResponse.Status不赞成使用HttpResponse.StatusDescription。