我正在用HTTP4.0和IIS7编写一个ASP.NET处理程序,并且我需要生成一个找不到文件的条件。
我从马修·麦克唐纳的新书“C# 2010中的专业版ASP.Net 4”中复制了以下代码。( response变量是当前HttpResponse的一个实例。)
response.Status = "File not found";
response.StatusCode = 404;但是,我发现第一行生成了运行时错误HTTP status string is not valid.
如果我不使用上面的代码行,而是使用下面的代码:
response.Status = "404 Not found";那么一切看起来都很好。事实上,我甚至看到response.StatusCode被自动设置为404。
我的问题是,我不希望这在生产服务器上失败。所以,如果我能理解完成这件事的“正确”方法,我会感觉好很多。为什么第一种方法适用于Mathew McDonald,而不适用于我?第二种方法总是可靠的吗?
有没有人能提供一些建议呢?
发布于 2011-01-09 18:06:17
这是因为Status属性是发送到客户端的完整状态行,而不仅仅是消息。
你可以这样写:
response.Status = "404 File not found";或者,最好是:
response.StatusCode = 404;
response.StatusDescription = "File not found";请注意,根据它的文档,支持HttpResponse.StatusDescription而不推荐使用HttpResponse.Status。
https://stackoverflow.com/questions/4637786
复制相似问题