Asp.net mvc 使用带有包含点的虚拟路径的卡西尼号
我正在ASP.NET中的一个现有项目中工作,该项目位于一个包含点的文件夹中Asp.net mvc 使用带有包含点的虚拟路径的卡西尼号,asp.net-mvc,iis,cassini,Asp.net Mvc,Iis,Cassini,我正在ASP.NET中的一个现有项目中工作,该项目位于一个包含点的文件夹中 http://localhost/My.Awesome.WebClient/ 使用集成的Visual Studio Development Server,此设置工作正常,但在添加MVC内容并尝试访问它时失败(错误404未找到资源) 似乎可以解释这个问题: 如果在Visual Studio 2010中创建文件系统网站,并且该网站位于文件夹名称中包含点(.)的文件夹中,则URL路由将无法可靠工作。从某些虚拟路径返回HTTP
http://localhost/My.Awesome.WebClient/
使用集成的Visual Studio Development Server,此设置工作正常,但在添加MVC内容并尝试访问它时失败(错误404未找到资源)
似乎可以解释这个问题:
如果在Visual Studio 2010中创建文件系统网站,并且该网站位于文件夹名称中包含点(.)的文件夹中,则URL路由将无法可靠工作。从某些虚拟路径返回HTTP 404错误。这是因为Visual Studio 2010使用根虚拟目录的不正确路径启动Visual Studio开发服务器(Cassini)
然而,该项目是一个Web项目,而不是一个网站,只有在我开始使用MVC时才失败
问题很容易重现:
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/
如果您没有得到这个问题的答案(就个人而言,我不知道有什么办法可以解决这个问题),我建议您使用“IIS Express”,它可以免费下载。它可以安装在开发机器上,您可以使用web.config文件控制许多服务器设置,这是相当不引人注目的 你可以在这里下载:
我现在只使用IIS Express;Cassini一直缺乏功能,IIS Express避免了我必须为每个web应用程序配置IIS。在Visual Studio vNext中,我认为应该删除Cassini,以便强制所有人使用IIS Express(尽管我个人建议所有人尽可能使用本地IIS 7,因为IIS Express仍然不是IIS).我不同意-卡西尼号有它的位置。它是轻量级的,预先安装,不在远程端口上侦听。更多比较请参见Scott Gu的博客:我从未听说过“IIS Express”,直到现在,它似乎真的提供了开发人员需要的所有功能。如果这个问题没有解决办法,我会试试看,谢谢。我也喜欢它不需要管理权限来调试。是的,听起来像是指标准的工作站IIS。IIS Express还允许您设置高级托管选项,如windows身份验证和SSL。您还可以通过命令行启动它,这对于多个托管实例非常方便,例如在您开发SOA时。自VS 2012以来,IIS Express是内置的。这解决了我所有的问题。