2009-03-13 20 views
5

IIS7サーバーにMVCアプリケーションを展開する際に問題が発見されました。いずれのルートナビゲーションでも404エラーが発生します。私はこの問題は、統合にアプリケーションプールの管理パイプラインモードを設定することで解決することができるウェブ上で見つけたが、今、私たちは例外を持っている:IIS7でのASP MVCルーティングの問題

Request is not available in this context 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

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

Source Error: 


Line 19: 
Line 20:   public override void SetActiveUser(Guid userOid) { 
Line 21:    FormsAuthentication.SignOut(); 
Line 22:    HttpContext.Current.Items[Key] = userOid.ToString(); 
Line 23:    FormsAuthentication.RedirectFromLoginPage(userOid.ToString(), true); 

誰もが任意のアイデアを持っていますか?

答えて

10

問題はおそらくweb.configファイルにあります。 IIS7以降、ハンドラとモジュールを構成する場所は2つあります。クラシックモードで実行すると、IIS 6で動作しているようになります(ただし、IIS 7で動作します)。唯一の6つの設定をIISがあるはず

<system.web> 
[...] 
    <httpHandlers> 
      [...] 
     </httpHandlers> 
     <httpModules> 
      [...] 
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 

     </httpModules> 
    </system.web> 

:ここ

は、設定ファイルです。述べ何kvalcantiにglomするに

<system.webServer> 
[...] 
      <modules runAllManagedModulesForAllRequests="true" > 
       <remove name="UrlRoutingModule"/> 
       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </modules> 
      <handlers> 
       <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
      </handlers> 
     </system.webServer> 
1

は7設定が下に置かれるべきIIS。標準ルーティングはIIS 7用に設計されていました。IISの古いバージョンには追加された問題があります。したがって、古いバージョンで作業している場合は、設定ファイルのバージョンアップが完了しています。設定を変更すると、問題が解決されます。

kvalcantiに言及したことに加えて、global.asaxにもちょっとしたkludgeが設定されている可能性があります。 ASP.NET MVCの最新バージョンではまだ必須であるかどうかはわかりませんが、ここ数ヶ月の間にVista以外のものに取り組んだことはありません。

この投稿は、いくつかの洞察力を持っています http://www.developingfor.net/aspnet-mvc/deploying-aspnet-mvc-on-iis6.html

スコット・ガスリーは、彼のブログ(http://weblogs.asp.net/scottgu/)にこのことについての素晴らしいブログ記事があったが、私はそれはブックマークがありません。

-1
  1. オープンNuget
  2. NotFoundMvc
  3. をインストール???
  4. 利益
関連する問題