[英]How to get host name in startup file
我的 API 在 IIS 上运行,带有“www.api-example.com”。 如何在启动文件 ConfigureServices 方法中获取“api-example”?
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
//string hostName = ...
//*** App Settings Services
services.AddAppServices(Configuration);
//*** Business Services
services.AddBusinessServicesCollection();
}
}
我的 API 在 IIS 上运行,带有“www.api-example.com”。 如何在启动文件 ConfigureServices 方法中获取“api-example”?
不,我们不能,因为ConfigureServices
在构建Startup
之前被调用,所以如果我们尝试注入,它将通过异常,即使我们在那种情况下声明全局变量,它也将始终是 null。应用程序启动只发生一次,并且在任何请求之前很久已收到。
获取主要主机/域名的正确方法:
app.Use((context, next) =>
{
var hostUrl = context.Request.Host.Host;
Console.WriteLine(hostUrl);
return next.Invoke();
});
Output:
app.Use((context,next) =>
{
var url = context.Request.GetDisplayUrl();
return next.Invoke();
});
主机名链接
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.