1

今天面對奇怪的行爲。 我們正在使用Azure App Services和使用路由到特定控制器或區域的子域來託管asp.net核心1.1 Web應用程序。 所以在我SubdomainConstraint:IRouteConstraint我用ASP.NET核心Azure應用服務httpContext.Request.Headers [「主機」]值

HttpContext.Request.Headers["Host"] 

獲得主機名。這樣

mywebsite.com or subdomain.mywebsite.com 

以前返回不便從今天開始(或者也許昨天)就開始返回我的應用程序服務名稱,而不是主機名。在本地主機上一切正常。 通過

Context.Request.Headers 

在我的觀點的一個枚舉給了我在localhost:

Accept : 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding : gzip, deflate, sdch, br 
Accept-Language : ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,ca;q=0.2 
Cookie : .AspNetCore.Antiforgery.... 
Host : localhost:37202 
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 
Upgrade-Insecure-Requests : 1 
在Azure的應用服務

Connection : Keep-Alive 
Accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding : gzip, deflate, sdch 
Accept-Language : ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,ca;q=0.2 
Cookie : AspNetCore.Antiforgery.... 
Host : mydeploymentname:80 
Max-Forwards : 10 
User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 
Upgrade-Insecure-Requests : 1 
X-LiveUpgrade : 1 
X-WAWS-Unencoded-URL :/
X-Original-URL :/
X-ARR-LOG-ID : 9c76e796-84a8-4335-919c-9ca4rb745f4fefdfde 
DISGUISED-HOST : mywebsite.com 
X-SITE-DEPLOYMENT-ID : mydeploymentname 
WAS-DEFAULT-HOSTNAME : mydeploymentname.azurewebsites.net 
X-Forwarded-For : IP:56548 
MS-ASPNETCORE-TOKEN : a97b93ba-6106-4301-87b2-8af9a929d7dc 
X-Original-For : 127.0.0.1:55602 
X-Original-Proto : http 

我能得到什麼,我從

Headers["DISGUISED-HOST"] 
需要

但是在重定向到登錄頁面時出現問題,它會使用我的部署名稱重定向到錯誤的URL。想知道我是否可以在任何地方弄到什麼東西。但是我們前幾天做了最後一次部署,之後它運行良好。

+0

你可以分享你的Web應用程序的名字,直接或[間接](https://github.com/projectkudu/kudu/wiki/Reporting-your-site-name-without-posting-it-publicly)?這將有助於我們進行調查。謝謝! –

+0

我有同樣的問題,微軟正在研究它。 – argaz

+0

爲我解決了。 – argaz

回答

2

這是由部署到Azure App Service中的少數應用程序的AspNetCoreModule中的迴歸引起的。這個問題正在調查中。請按照this thread的狀態。

這裏是您可以使用,直到修復部署一種解決方法:在你的配置方法(通常在startup.cs),添加以下內容:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
    { 
     app.Use((ctx, next) => 
     { 
      string disguisedHost = ctx.Request.Headers["DISGUISED-HOST"]; 
      if (!String.IsNullOrWhiteSpace(disguisedHost)) 
      { 
       ctx.Request.Host = new Microsoft.AspNetCore.Http.HostString(disguisedHost); 
      } 
      return next(); 
     }); 

     // Rest of your code here... 

    } 
+0

任何更新時間將會修復?這影響了我們在美國西部部署的部分應用。 –

相關問題