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