2012-01-14 22 views
1

Global.asaxのApplication_Startイベントから、WebサイトがホストされているURLを特定する方法はありますか?Global.asax Application_StartイベントでサーバーのURLとポートを特定する方法

私のアプリケーションがバックグラウンドプロセスから電子メールで送信される動的リンクを生成できるように、URLを保存しようとしています。

私が直接この方法でHttpApplication.Requestオブジェクトにアクセスしようとすると、私はランタイムエラーを取得:

System.Web.HttpException: Request is not available in this context

+1

「Session_Start」でこれを行うことができないのはなぜですか? – Oded

+0

統合モードでIIS 7以上で実行されている場合、Application_Startの時点では現在のHTTPコンテキストは使用できません。 @Odedが述べているように、Session_Startは動作します(Application_BeginRequestと同様ですが、Session_Startはあまり頻繁に呼び出されません)。 – Dubs

答えて

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 + '/'; 
     } 
0

あなたは以下を要求からURLを取得することができる場合があります

this.Context.Request.Url

ここから、アプリケーションのポート番号を含むアドレスを特定できます。

+0

これは私のローカル開発マシン(Cassini)で動作しましたが、私のサーバーに展開するとエラーが発生します。同じ方法で動作するように設定する必要のあるIIS設定があるかどうかを知っていますか? – YeahStu

+0

あなたが得ているエラーは何ですか? – alhalama

+0

System.Web.HttpException:このコンテキストではリクエストを使用できません – YeahStu

関連する問題