加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:53:22 所属栏目:asp.Net 来源:网络整理
导读:我需要在应用程序启动后立即找到IIS 7.5中托管的ASP.NET Web API应用程序的基本URI,但是在任何客户端请求到达之前.我需要这个的场景如下:通过独立于用户请求运行的计时器执行定期检查,该计时器与应用程序启动一起触发(相同的过程);如果此检查通过某些条件,
我需要在应用程序启动后立即找到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 – > “/我的应用程序”
> SiteName => “默认网站”

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

例如,您的网站可以响应mydomain.com和www.mydomain.com.您想要在链接中添加哪个是正确的?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读