2009-06-08 21 views
18

私はHttpModuleを使用して自分のサイトでURLを短縮しています。私はVisual Studio 2008とIIS 7と.Net 3.5を使用しています。Visual StudioでHttpModuleが実行されていません

モジュールがweb.configのsystem.webServer要素で指定されていて、そのサイトがIISで実行されている場合、正常に動作します。設定は次のようになります。

<system.webServer> 
     <modules> 
      <add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" /> 
     </modules>... 

私のモジュールはBeginRequestイベントに接続し、すべて動作します。しかし、私は組み込みのVS Webサーバー(Cassini)を使用して実行することはできません。私はモジュール設定をsystem.web要素web.configに移動しようとしました。私はそれにブレークポイントを置く、何も起こらない。

なぜこれが問題になるのでしょうか?

(私もGlobal.asaxの中Application_BeginRequestイベントを試していない。それでも運、私はとにかくweb.configファイルのすべてを維持することを好むと思いますけれども。)

答えて

0

あなたも要素にモジュール宣言を入れてみました? Cassiniを使用してdevで実行している場合、通常はモジュールを実行させるためにモジュールを配置する必要があります。あなたは、私はまた、あなたのIIS7の設定に前提条件を追加しましたので、

<system.web> 
    <httpModules> 
    <add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" /> 
    </httpModules> 
</system.web> 


<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules> 
    <remove name="MinimizeModule" /> 
    <add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" 
     preCondition="managedHandler" /> 
    </modules> 
</system.webServer> 

ノートのような追加モジュールを複製しなければならないので、

+0

これ以上展開できますか?私はあなたが何を意味するか分からない。 –

37

カッシーニは、IISで提供開発用ウェブサーバーは、IIS6モジュールの構文を使用しています

<configuration> 
    <system.webServer> 
     <modules> 
     <add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" /> 
     </modules> 
    </system.webServer> 
</configuration> 

あなたはカッシーニ(Visual Studioの統合のミニチュアWebサーバ)上で実行されている場合は、置く:

+0

これは有望そうですが、すぐにあなたに結果を返します... –

+0

これを試してみました。私のモジュール.ctorsとInit()は、イベントハンドラをアタッチしようとすると、PlatformNotSupportedExceptionが発生します.CassiniはIIS7セクションを完全に無視しているようです。 – Hafthor

+1

さて、カッシーニは - あなたはIIS6の構文も追加する必要がありますので、そこに両方がある – blowdart

2

あなたはIIS 7上で実行されている場合は、モジュールを置きますモジュールは:

<configuration> 
    <system.web> 
     <httpModules> 
      <add name="MinimizeModule" type="ClipperHouse.UrlMinimizer.MinimizeModule" /> 
    </system.web> 
</configuration> 

あなたがカッシーニの場所を指定すると、IISがクラッシュします。
IISの場所を指定すると、Cassiniはクラッシュします。

私がデプロイするときはいつでも、私はweb.configを配備しないでください。私はまた、web.configにノートを含める:

<system.web> 
    <!--The Cassini location to add modules (comment out for IIS)--> 
    <httpModules> 
     <!--WARNING: IIS will crash if you leave this in here. 
      IISBUG: IIS doesn't support system.web/httpModules, 
      and Cassini doesn't support system.webServer/modules 
     --> 
     <!--Comment out for IIS--> 
     <add name="PerformanceHttpModule" type="DummyPlaceholder.PerformanceHttpModule"/> 
    </httpModules> 
</system.web> 

<system.webServer> 
    <!--The IIS7 location to add modules (comment out for Cassini) 
    <modules runAllManagedModulesForAllRequests="true"> 
     <!--IIS7 will crash if you present a system.web httpModules. --> 
     <remove name="PerformanceHttpModule" /> 
     <add name="PerformanceHttpModule" type="DummyPlaceholder.PerformanceHttpModule"/> 
    </modules> 
</system.webServer> 

IISの左手は、カッシーニの右手が何をしているのかわからない - と彼らの両方がそれを台無しに。

関連する問題