繁体   English   中英

如何在启动文件中获取主机名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM