2009-08-28 11 views
1

私はまだASP.NET MVCを初めて使い始めています。私はルーティングに少し苦労しています。ASP.NET MVCで、自分のウェブサイトを公開した後に404エラーが発生するのはなぜですか?

(Visual Studioから直接実行される)ASP.NET開発サーバーを使用すると、私のアプリケーションは問題なくビューを見つけることができます。標準のASP.NETのURLが使用されている - http://localhost:1871/InterestingLink/Register

私はIISとhttp://localhost/MyFancyApplication/InterestingLink /レジスタを介してアクセスをし、私のサイトを公開するときしかし、私は404エラーを取得します。

何が間違っているかに関するご意見はありますか?

詳細情報...

これは私のGlobal.asaxファイルは、(標準)のようになります。

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 = "" } // Parameter defaults 
      ); 

     } 

     protected void Application_Start() 
     { 
      RegisterRoutes(RouteTable.Routes); 
     } 
    } 

私のコントローラはまた、非常に簡単です:の

public class InterestingLinkController : Controller 
{ 
    public ActionResult Register() 
    { 
     return View("Register"); 
    } 
} 

答えて

2

私が間違っていたものを考え出しました。この問題は実際には、URLに.ASPXが含まれていない場合、IIS5(Windows XPの場合)がASP.NETを起動しないことになります。これを回避する最も簡単な方法は、global.asaxのコントローラセクションに '.aspx'を追加することです。たとえば、

routes.MapRoute(
       "Default",            
       "{controller}.aspx/{action}/{id}",      
       new { controller = "Home", action = "Index", id = "" } 
      ); 

かなりかまいませんが、それは行います。

1

ロット事が間違っている可能性があります:

  • IIS仮想ディレクトリ&アプリケーションが正しく設定されていますか?
  • ASP.NETアプリケーションはまったく呼び出されていますか? (Application_StartApplication_BeginRequestにいくつかのログ/ブレークインを追加してください)

ちょうど開始です。通常のデバッグ方法を適用する必要があります。

は、(このような問題を避けるために、私はめったに開発サーバーを使用しない、ちょうど全体の時間をIISを使用します。最も困難なことは、VSが毎回上昇し実行するように思い出すれる)

関連する問題