2016-10-20 13 views
1

私はASP.NET Coreを初めてお使いになり、最初のWebサイトを構築しようとしています。私はエラー処理に苦労していて、実際にはアドバイスが必要です。私は成功した404500のエラーをキャッチするようだと、正しいとエラービューのページを表示するホームコントローラ404 HTTPSのエラー処理ですか?

[HttpGet("Home/error/{errcode}")] 
    public IActionResult Error(int errCode) 
    {   
     return View("Error", errCode);    
    } 

でstartup.cs

にコード app.UseStatusCodePagesWithReExecute("/Home/Error/{0}");を使用していた404エラーを処理するために

コード。エラー表示は/Views/Shared/Error.cshtml

である。しかし、私はstartup.csでこのようにHTTPからHTTPSにリダイレクトを追加するとき

 app.Use(async (context, next) => 
     { 
      if (context.Request.IsHttps) 
      { 
       await next(); 
      } 
      else 
      { 
       var httpsUrl = "https://" + context.Request.Host + context.Request.Path; 
       context.Response.Redirect(httpsUrl); 
      } 
     }); 

エラー処理はもう動作と

Firefoxで Secure Connection Failed Error code: SSL_ERROR_RX_RECORD_TOO_LONGは表示されません

これはこのようになります。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
     loggerFactory.AddDebug(); 
      if (env.IsDevelopment()) 
     { 
      app.UseDeveloperExceptionPage(); 
      app.UseDatabaseErrorPage(); 
      app.UseBrowserLink(); 
     } 
     else 
     { 
      app.UseExceptionHandler("/Home/Error/{0}"); 
      // StatusCodePagesMiddleware to handle errors  
      app.UseStatusCodePagesWithReExecute("/Home/Error/{0}"); 
     } 
     app.UseStaticFiles(); 
     app.UseIdentity(); 

     app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=LandingPage}/{id?}");    
     }); 

     app.Use(async (context, next) => 
     { 
      if (context.Request.IsHttps) 
      { 
       await next(); 
      } 
      else 
      { 
       var httpsUrl = "https://" + context.Request.Host + context.Request.Path; 
       context.Response.Redirect(httpsUrl); 
      } 
     }); 
    } 

ASP.NET MVC Core1.0でHTTPSエラーを処理するにはどうすればよいですか?

ありがとうございました!

+0

あなたはconfiugrationプロパティを投稿しましたか? – Tinwor

+0

これはどういう意味ですか? '{ "iisSettings":{ "windowsAuthentication":偽、 "anonymousAuthentication":真、 "iisExpress":{ "applicationUrl": "のhttp:// localhostを:53519 /"、 "SSLPORT": 0 } }、 ' –

+0

sslportの値を変更して再試行してください。私の仕事環境では44300に設定され、完全に動作します – Tinwor

答えて

0

ミドルウェアが重要な場合は、注文してください。最初にリダイレクトを行い、MVCを使用する必要があります。

app.Use(async (context, next) => 
{ 
    // redirect 
    ... 
}); 

app.UseMvc(routes => 
{ 
    ... 
} 
関連する問題