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";
その後、すべてが正常に動作するようです。実際、response.StatusCodeが自動的に404に設定されていることもわかります。
私の問題は、これが運用サーバーで失敗しないようにすることです。ですから、これを達成するための「正しい」方法を理解できれば、ずっと気分が良くなるでしょう。最初のアプローチがMathew McDonaldで機能したのになぜ私では機能しなかったのですか?そして、2番目のアプローチは常に信頼できるでしょうか?
誰かが何かヒントを提供できますか?
Status プロパティは、メッセージだけでなく、クライアントに送信される完全なステータス行であるためです。
あなたはどちらかを書くことができます:
response.Status = "404 File not found";
または、できれば:
response.StatusCode = 404;
response.StatusDescription = "File not found";
そのドキュメントによると、HttpResponse.Status
は HttpResponse.StatusDescription の代わりに廃止されました。