我试图深入了解导致我看到的一个特别奇怪的错误的原因。我已将问题隔离如下:
使用两个基本控制器创建一个 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 元素做同样的事情,那么你会得到这个奇怪的错误:
注意:这只发生在前导波浪号 (~) 字符上。没有它,你会得到你所期望的正常错误。
我无法真正找到有关此错误的文档,但我很想了解为什么会发生这种情况以及如何防止它。
您可以就该问题提出的任何意见都会有所帮助。