gpt4 book ai didi

asp.net - 在启动期间获取 Web 应用程序的 URI

转载 作者:行者123 更新时间:2023-12-04 20:11:18 24 4
gpt4 key购买 nike

我需要找出 IIS 7.5+ 中托管的 ASP.NET Web API 应用程序的基本 URI,在应用程序启动之后,但在任何客户端请求可能到达它之前。我需要这样做的场景如下:通过一个独立于用户请求运行的计时器执行定期检查,该计时器与应用程序启动(同一进程)一起触发;如果此检查通过某些条件,某些注册用户将收到一封电子邮件,其中包含指向我的 Web 应用程序的超链接。现在,我不想在任何地方对该链接进行硬编码,而是从 Web 应用程序本身动态获取它。从客户端请求的上下文中找出它然后将其缓存在内存中很简单,但是,正如您想象的那样,计时器可能会在任何请求到达服务器之前关闭。

我如何才能正确确定应用程序的基本 URI?我在想最合适的地方是 Global.asax.cs文件,在网络应用程序启动期间,但我找不到任何看起来有用的东西。

最佳答案

给定一个完整的 URL,例如“http://mydomain.com/MyApplication/Controller/Action”,您可以从 System.Web.Hosting.HostingEnvironment.ApplicationHost 中获取一些此类信息。目的。您可以获得以下信息:

  • ApplicationVirtualPath -> "/MyApplication"
  • 站点名称 =>“默认网站”

  • 但是,在实际请求到来之前,您将无法获得域名。这是因为 IIS 网站可以接受对许多不同域的请求,其中一些域只能通过 DNS 知道并且从未在任何地方配置过。

    例如,您的网站可以同时响应 mydomain.comwww.mydomain.com .您想放入链接中的哪个是正确的?

    您可以将 IIS 网站配置为仅接受请求特定主机但无法从 ASP.NET 应用程序检索的连接。

    关于asp.net - 在启动期间获取 Web 应用程序的 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986168/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com