如何确定Global.asax Application_Start事件中的服务器URL和端口

时间:2012-01-14 22:03:26

标签: asp.net global-asax

有没有办法从Global.asax的Application_Start事件中确定托管网站的网址?

我正在尝试存储该网址,以便我的应用程序可以生成通过后台进程通过电子邮件发送的动态链接。

如果我尝试直接访问此方法中的HttpApplication.Request对象,则会出现运行时错误:

  

System.Web.HttpException:请求在此上下文中不可用

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式从请求中获取网址:

this.Context.Request.Url

由此您可以确定地址,包括应用程序的端口号。

答案 1 :(得分:0)

我最终将我的代码放在Global.asax的Application_BeginRequest事件中。

        string url = this.Context.Request.Url.AbsoluteUri.Replace(this.Context.Request.Url.PathAndQuery, string.Empty) + this.Context.Request.ApplicationPath;
        if (url[url.Length-1] != '/')
        {
            url = url + '/';
        }