2012-02-22 76 views
1

我在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失败。

这个问题可以很容易地复制:

  1. 文件 - 新建 - 项目 - ASP.NET MVC 3 Web应用程序
  2. 编辑项目设置,网址:使用Visual Studio开发服务器
  3. 设置虚拟路径的东西,包含一个圆点
  4. 尝试运行网站

有没有办法得到这个工作,除了使用IIS而不是卡西尼?

编辑:

我刚才找到了解决方法。它并没有真正在部署方案的工作,但它可能会找到解决办法帮助:

在我的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的网站工作,但只有在以下网址:

http://localhost/My.Awesome.WebClient/My.Awesome.WebClient/ 

回答

3

如果你没有得到这个问题的答案(个人,我不知道的迂回方式),我会建议使用“IIS快车”,这是可以免费下载。它可以安装在开发机器上,您可以使用web.config文件控制很多服务器设置,这是相当不显眼的。

您可以在这里下载:

http://www.microsoft.com/download/en/details.aspx?id=1038

我使用IIS快递独家现在; Cassini一直缺乏功能,IIS Express避免了我必须为每个Web应用程序配置IIS。

+0

在Visual Studio vNext中,我认为应该删除Cassini以强制每个人使用IIS Express(尽管我个人建议每个人都使用本地IIS 7,如果可能的话IIS Express仍然不是IIS)。 – 2012-02-22 11:53:32

+0

我不同意 - 卡西尼有它的地方。它重量轻,预装并且不会在远程端口上侦听。请参阅Scott Gu的博客以获取更多比较:http://weblogs.asp.net/scottgu/archive/2010/06/28/introducing-iis-express.aspx – Spikeh 2012-02-22 15:20:34

+0

直到现在,我从未听说过“IIS Express”提供开发人员需要的所有功能。如果没有解决这个问题,我会试试看,谢谢。我也喜欢它不需要管理权限来调试。 – 2012-02-22 16:11:17