Asp.net 如何在Windows2003Server的MVC4应用程序中启用存储虚拟目录和存储控制器

Asp.net 如何在Windows2003Server的MVC4应用程序中启用存储虚拟目录和存储控制器,asp.net,asp.net-mvc,asp.net-mvc-4,iis,asp.net-mvc-routing,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Iis,Asp.net Mvc Routing,使用IIS的Windows 2003服务器中的ASP.NET MVC4应用程序位于虚拟目录存储中,并且具有存储控制器,可以 http://mysite.com/store/Store/Details?product=C201S 此应用程序也需要从root访问,如下所示 http://mysite.com/Store/Details?product=C201S 对于此副本,已创建应用程序目录,并将默认web应用程序指向它。 但是返回错误 The resource cannot be found

使用IIS的Windows 2003服务器中的ASP.NET MVC4应用程序位于虚拟目录存储中,并且具有存储控制器,可以

http://mysite.com/store/Store/Details?product=C201S
此应用程序也需要从root访问,如下所示

http://mysite.com/Store/Details?product=C201S
对于此副本,已创建应用程序目录,并将默认web应用程序指向它。 但是返回错误

The resource cannot be found. 
  Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

 Requested URL: /Store/Details


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 
url中不包含存储控制器的链接工作正常。 看起来像是存储应用程序和存储控制器名称冲突。如何解决这个问题

global.asax.cs包含默认值:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    //http://haacked.com/archive/2010/02/12/asp-net-mvc-2-optional-url-parameters.aspx
    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );
}

根据我的评论,,要使这两个Url都工作,您应该将虚拟目录的父网站的主目录设置为相同的目录,就像虚拟目录向您展示的那样。

通过设置虚拟目录并将web应用程序放置在其中,您的web应用程序的根目录就是虚拟目录:
http://my site.com/VIRTUAL\u DIRECTORY/
。因此没有冲突。默认网站中根目录的主目录设置为c:\myapp\web\storepea,虚拟目录属性中存储虚拟目录的主目录设置为c:\myapp\web\store。到底应该改变什么?我更新了问题并添加了image@Andrus默认网站的主目录应更改为
c:\myapp\web\store