我正在处理ASP.NET中的现有项目,该项目基于包含点的文件夹
http://localhost/My.Awesome.WebClient/
此设置使用集成的Visual Studio Develompent Server正常工作,但在添加MVC内容并尝试访问它时失败(错误404资源未找到)。
http://msdn.microsoft.com/en-us/library/ee941656.aspx似乎解释了这个问题:
如果在Visual Studio 2010中创建文件系统网站,并且网站位于文件夹名称中包含点(。)的文件夹中,则URL路由将无法可靠地运行。从某些虚拟路径返回HTTP 404错误。发生这种情况是因为Visual Studio 2010使用根虚拟目录的错误路径启动Visual Studio开发服务器(Cassini)。
但是,该项目是一个 Web项目,而不是一个网站,它只在我开始使用MVC时失败。
问题很容易再现:
除了使用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-Sites可以正常工作,但只能使用以下网址:
http://localhost/My.Awesome.WebClient/My.Awesome.WebClient/
答案 0 :(得分:3)
如果你没有得到这个问题的答案(个人而言,我不知道有什么方法),我建议使用“IIS Express”,可以免费下载。它可以安装在开发机器上,你可以使用web.config文件控制很多服务器设置,这是相当不引人注目的。
您可以在此处下载:
http://www.microsoft.com/download/en/details.aspx?id=1038
我现在专门使用IIS Express; Cassini一直缺乏功能,IIS Express避免了我为每个Web应用程序配置IIS。