私が見ている特に奇妙なエラーの原因について、いくつかの洞察を得ようとしています。問題を次のように切り分けました。
2 つの基本コントローラーを使用して ASP.Net MVC アプリケーションを作成します。
public class HasLocationController : Controller
{
public ActionResult Index()
{
return View();
}
}
public class NoLocationController : Controller
{
public ActionResult Index()
{
return View();
}
}
パス 'HasLocation' の場所要素を web.config に追加します。
<location path="HasLocation">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
サイトを IIS6 または IIS7 (IISExpress および WebDevServer は機能しません)に発行し、次のリンクを使用して参照を試みます。
http://[yourdomain]/NoLocation/%20~C:/blah.txt
http://[yourdomain]/HasLocation/%20~C:/blah.txt
対応する場所要素が構成されていないコントローラーの場合、予想される種類の例外メッセージが表示されます。
ただし、コントローラーで location 要素を使用して同じことを試みると、次の奇妙なエラーが発生します。
注:これは先頭のチルダ (~) 文字でのみ発生します。それがなければ、期待する通常のエラーが発生します。
このエラーに関するドキュメントを実際に見つけることはできませんでしたが、なぜこれが起こっているのか、そしてそれを防ぐ方法を理解したいと思っています.
この問題にあなたが当てることができるどんな光も役に立ちます。