我正在ASP.NET 4.0和IIS7中编写一个HTTP处理程序,我需要生成一个文件 - 未找到的条件。

我复制了Mathew McDonald的新书《 Pro ASP.NET 4》中C#2010中的以下代码。(响应变量是当前HttPresponse的一个实例。)

response.Status = "File not found";
response.StatusCode = 404;

但是,我发现第一行生成运行时错误 HTTP status string is not valid.

如果不是上面的行,我使用以下内容:

response.Status = "404 Not found";

然后一切似乎都很好。实际上,我什至看到该响应。施图码自动设置为404。

我的问题是,我不希望这在生产服务器上失败。因此,如果我能理解实现这一目标的“正确”方法,我会感觉更好。为什么第一个方法适用于马修·麦当劳(Mathew McDonald),而对我不起作用?第二种方法总是会可靠吗?

谁能提供任何技巧?

有帮助吗?

解决方案

那是因为 地位 属性是发送给客户端的完整状态行,而不仅仅是消息。

您可以写:

response.Status = "404 File not found";

或最好:

response.StatusCode = 404;
response.StatusDescription = "File not found";

请注意,根据其文档 HttpResponse.Status 被弃用 httpresponse.statusdescription.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top