我在AWS Elastic Beanstalk上的ASP.net Core应用发生了最奇怪的事情。
我在具有两个环境的Elastic Beanstalk上进行了应用程序设置。一个是我的测试开发环境,另一个是我的实时应用程序。我的DNS指向app.domain.com的实时应用程序,开发环境为app-dev.domain.com。
我使用Azure DevOps将代码发布到开发环境,然后通过测试,然后将相同的应用程序部署到我的实时环境中。
这是超级方便的b / c,我不必回头再通过Azure DevOps重新发布,我只需将应用程序代码包直接部署到其他环境中即可。
问题在于,鉴于此,我必须构建与BaseUrl无关的应用。换句话说,如果需要,它们必须“派生” BaseUrl。
我还在进行HTTP重定向到HTTPS,以便它强制通过SSL进行HTTPS协议。
为此,我在Startup.cs
中使用如下代码:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
var httpOptions = new RewriteOptions().AddRedirectToProxiedHttps().AddRedirect("(.*)/$", "$1");
app.UseRewriter(httpOptions);
}
AppSetting.EnvironmentName = env.EnvironmentName;
app.UseAuthentication();
}
这是奇怪的部分...
有时但并非总是如此,我被重定向到https://ingest.signalfx.com/
作为我的基本URL,而不是https://app.domain.com
。
我不知道这是哪里来的。这个域在我的代码中不存在,并且在运行于各种登录状态或隐身/私有模式的不同计算机和浏览器上发生。
有人知道为什么会这样吗?
我的猜测是,它与AWS用于内部监控Elastic Beanstalk的某些软件有关,并且我的代码正在提取该URL,而不是实际的“真实” URL。但是我已经四处搜寻,根本找不到太多提及。