2012-02-10 5 views
0

global.asaxのapplication_startイベントでhttpコンテキスト(Httpcontext.currentの助けを借りて)で作業しようとしましたが、エラー: - HttpContext.Current要求はこのコンテキストでは利用できませんローカルIIS Webサーバーを実行しているときにHttpContext.Currentリクエスト "Not Available"が表示される

この問題は、オブジェクトに最初にアクセスするときに発生する静的コンストラクタを使用することで、回避策で簡単に処理できます.Application_Beginrequestアプリケーションを初期化した要求を簡単に判別することができます。

しかし、この場合、要求に応じて作成されますが、これは私には必要ではありません.Httpcontextを作成またはアクセスしたいです。現在

マイコードは、以下のようにしたら: -

 `//var context = new HttpContextWrapper(HttpContext.Current); 
     //var routeData = RouteTable.Routes.GetRouteData(context) ?? new RouteData(); 
     //var requestContext = new RequestContext(context, routeData); 
     //var urlHelper = new UrlHelper(requestContext); 
     //var url = urlHelper.Action("Home", "Index"); 

     var httpContext = new HttpContextWrapper(HttpContext.Current); 
     UrlHelper urlHelper = new UrlHelper(new RequestContext(httpContext, new RouteData())); 
     if (urlHelper.RequestContext.HttpContext.Request.IsLocal) 
     { 

     } 
     //if (((requestContext.HttpContext).Request).IsLocal) 
     //{ 

     //}` 

答えて

1

統合モードでApp_StartにはHttpContextHttpRequestインスタンスはありません。これを回避する必要があります。最初のリクエストで本当に何かをする必要がある場合は、新しいBeginRequestハンドラをglobal.asaxに登録して、完了したら登録を解除してください。

関連する問題