ASP.Net でホストされているNancy Web サイトがあり、多数のカスタム ルートがあります。これらのルートには、ファイル パス (例: /path/to/xml_file.xml
) のように見えるマッピングが含まれますが、ブラウザに表示される HTML ファイルに解決されます。ほとんどのファイルでは、これは正しく機能します。ただし、XML ファイル (および場合によっては他の MIME タイプ) を使用すると、IIS 8 Express から 406.0 HTTP エラーが発生し、それが明示的に示されます。
HTTP エラー 406.0 - 受け入れられません
ファイル拡張子がブラウザで受け入れられていないため、リソースを表示できません。
要求されたファイル拡張子でサポートされていない MIME タイプの Accept ヘッダーが含まれていたため、要求は拒否されました。
要求されたファイル拡張子の MIME 設定を確認して、この MIME タイプが受け入れられることを確認してください。
パスロジックを書き直さなくてもこのエラーが発生しないように、この検証をバイパスするための web.config 設定またはその他の手法はありますか? 私のGoogle検索は失敗しています。たとえば、 SO Answerからリンクされているこの IIS フォーラムの投稿を見つけました。
すべての要求を ASP.NET にマップし、ASP.NET の StaticFileHandler を使用して要求を処理します
ただし、投稿ではこれを行う方法について説明していません。また、適用されるようにも見えません。
編集:(上記のエラーページ画像を追加)
別のヒントとして、ナンシールートはフォームの明示的なビューを返します
return View["view_name", myModel];
したがって、コンテンツ ネゴシエーションをバイパスする必要があります。