3

IIS(管理者アクセス権がない)でデフォルトの「ASP.NETMVC 2 Webアプリケーション」を使用していますが、

「サーバー/ITEC」

サーバーがエラー(404エラー)を返さずに「server / ITEC/About」に移動することはできません。

テストにもRouteDebuggerを使用しています。デフォルトの「server/ITEC」を使用すると一致しますが(デフォルトのホーム/インデックスコントローラーアクション)、手動で「server / ITEC/About」と入力しても表示されません。 RouteDebuggerページ。また、「server / Itec / About」に「index.html」ファイルを配置すると、結果が返されます。これにより、ディレクトリは、リクエストを処理するときにMVCルーティングではなくファイルシステムを使用するように構成されていると思います。 -これは安全な仮定ですか?

デフォルト以外のコントローラー/アクションを返すことができるように、Global.asaxファイルを更新するにはどうすればよいですか?または、これはサーバーの問題ですか?それを修正するにはどうすればよいですか?

ありがとう!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace mikeProg
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode,
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");           

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults            
            );

            RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

        }

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterRoutes(RouteTable.Routes);
        }
    }
}
4

1 に答える 1

1

私はこれを理解しました!

aspnet_isapi.dllのワイルドカードアプリケーションマップセクションで、

「ファイルが存在することを確認する」がチェックされました。

システム管理者にチェックを外すように頼んだら、すべてが完全にルーティングされました。

なぜこれもオプションなのですか?いつ使用しますか?

于 2013-02-19T23:35:59.750 に答える