【发布时间】:2025-11-24 23:40:02
【问题描述】:
我正在处理 ASP.NET 中的一个现有项目,女巫基于一个包含点的文件夹
http://localhost/My.Awesome.WebClient/
此设置使用集成的 Visual Studio 开发服务器运行良好,但在我添加 MVC 内容并尝试访问它时失败(找不到错误 404 资源)。
http://msdn.microsoft.com/en-us/library/ee941656.aspx 似乎解释了这个问题:
如果您在 Visual Studio 2010 中创建文件系统网站,并且该网站位于文件夹名称中包含点 (.) 的文件夹中,则 URL 路由将无法可靠地工作。从某些虚拟路径返回 HTTP 404 错误。出现这种情况是因为 Visual Studio 2010 使用错误的根虚拟目录路径启动 Visual Studio Development Server (Cassini)。
然而,这个项目是一个Web项目,而不是一个网站,而且它只是在我开始使用MVC时失败了。
问题很容易重现:
- 文件 - 新建 - 项目 - ASP.NET MVC 3 Web 应用程序
- 编辑项目设置,Web:使用 Visual Studio 开发服务器
- 将虚拟路径设置为包含点的内容
- 尝试运行网站
除了使用 IIS 代替 Cassini 之外,还有其他方法可以让它工作吗?
编辑:
我刚才确实找到了解决方法。它在部署场景中并不真正起作用,但它可能有助于找到解决方案:
在我的 Global.asax.cs 文件中:
routes.MapRoute(
"Default", // Route name
// Notice that I added the virtual path here
"My.Awesome.WebClient/{controller}/{action}/{id}", // URL with parameters
new { action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
// This is also new
routes.MapRoute(
"Root", // Route name
"", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
使用此解决方法,我的 MVC 站点可以工作,但只能使用以下 url:
http://localhost/My.Awesome.WebClient/My.Awesome.WebClient/
【问题讨论】:
标签: asp.net-mvc iis cassini