0

IIS を使用する Windows 2003 サーバーの ASP.NET MVC4 アプリケーションは、仮想ディレクトリ ストアにあり、ストア コントローラーを持ちます。

http://mysite.com/store/Store/Details?product=C201S

このアプリケーションはルートからもアクセスする必要があります。

http://mysite.com/Store/Details?product=C201S

このため、アプリケーション ディレクトリのコピーが作成され、デフォルトの Web アプリケーションがそれを指しています。ただし、 http://mysite.com/Store/Details?product=C201Sはエラーを返します

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 に Store コントローラーが含まれていないリンクは正常に機能します。ストア アプリケーションとストア コントローラーの名前が衝突しているようです。これを修正するには?

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
    );
}
4

1 に答える 1

0

私のコメントによると、両方の URL を機能させるには、仮想ディレクトリの親 Web サイトのホーム ディレクトリを仮想ディレクトリと同じディレクトリに設定する必要があります。このページでは、その方法を示します。

于 2013-10-16T18:02:12.230 に答える