2017-11-10 22 views
0

最初に読み込んだときにDefault.aspxに解決されないようなasp.net Webサイトがあります。私のローカルマシン上でデバッグするとき、デフォルトで問題はありません。 "localhost:##### /"に移動しようとしない限り。その後、404エラーが発生します。私はそれをステージングサーバーに展開するときに仮想パス "mywebapp"を与え、 "mydomain.com/mywebapp"からロードすると、404も表示されます。 Default.aspxをIISのDefault Documentのリストの一番上に設定しました。私が "mydomain.com/mywebapp/default"に移動すると、サイトは正常に読み込まれます。助言がありますか?私はコードを貼り付けますが、それは大規模なウェブサイトであり、私はかなり正直なところ私が何を探しているのか分かりません。ASP.NETルートのURLがDefault.aspxに解決されない

enter image description here

編集:私はまた、データの表示と編集のためのDataTableを使用しています私のサイトで 。 Ajaxの呼び出しでは、私は以前のようなURLを使用して、コントローラを呼び出すことができました:

api/MyController/idvalue 

が、これを暴くため、私は戻って、彼らが仕事を得るためにURLを前置きしなければならなかった:

mywebapp/api/MyController/idvalue 

コントローラ:

public class MyController : ApiController 
{ 
    [Route("api/MyContoller/{idvalue}")] 
    [HttpGet] 
    [HttpPost] 
    public IHttpActionResult MyControllerMethod(intidvalue) 
    { 
    } 
} 

WebApiConfig:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.MapHttpAttributeRoutes(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

RouteConfig:

public static class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     var settings = new FriendlyUrlSettings(); 
     settings.AutoRedirectMode = RedirectMode.Permanent; 
     routes.EnableFriendlyUrls(settings); 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     //routes.MapRoute(
     //  name: "Default", 
     //  url: "{controller}/{action}/{id}", 
     //  defaults: new { action = "Index", id = UrlParameter.Optional } 
     // ); 
     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
} 
+0

これはMVCまたは通常のWebフォームのサイトですか?私が尋ねる理由は、ルータの設定があるかどうかを知ることです。また、web.configにデフォルトのページを追加しようとしましたか? https://stackoverflow.com/questions/1913058/set-default-page-in-asp-net。また、mydomain.com/mywebapp/(最後にスラッシュ)を試してみましたか? –

+0

それは意味があるかどうかではありません。 Webformsがほとんどですが、MVCのいくつかの側面が使用されています。私は最後にスラッシュを試みました。その記事の解決策では解決できませんでした。私は何か興味深いことに注意するために私の質問を編集しました – mac

答えて

0

は解決策を見つけました。私のRouteConfig.csでは、私が行をコメントアウトすると:

controller = "Home", 

うまく動作します。

public static class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     var settings = new FriendlyUrlSettings(); 
     settings.AutoRedirectMode = RedirectMode.Permanent; 
     routes.EnableFriendlyUrls(settings); 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     //routes.MapRoute(
     //  name: "Default", 
     //  url: "{controller}/{action}/{id}", 
     //  defaults: new { action = "Index", id = UrlParameter.Optional } 
     // ); 
     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new 
      { 
       //controller = "Home", 
       action = "Index", 
       id = UrlParameter.Optional 
      } 
     ); 
    } 
} 

しかし、なぜこれがどういうわけかはっきりしません。だから、誰かがそれを私に説明することができれば、それは素晴らしいだろう!

+0

これは私があなたにMVCルーターがあるかどうか尋ねた理由でした。以前はデフォルトのページがMVCルータによって設定されていました。上記の "修正"は、既定のルートを "破る"ことでした。既定のコントローラが指定されていないため、IISは新しい既定のページを示すメッセージになります。 –

+0

ありがとうございます。 – mac

関連する問題