2009-09-18 4 views
14

web.configファイルにカスタムHttpHandlerを登録しようとしています。 MSDN's例では、コメントアウトされたエントリが表示されていますが、うまく動作しません。コメントを外すとCould not load file or assembly 'HttpModule.cs' or one of its dependencies. The system cannot find the file specified.エラーが表示されます。ファイル名はHttpModule.csで、クラス名はMyHttpModuleです。明示的な名前空間はまだありません。web.configにhttpModulesを登録する

<httpModules> 
    <add name="MyHttpModule" type="MyHttpModule, HttpModule" /> 
<httpModules> 

私は明らかに見落としていると確信しています。ファイルパスをどこかに指定する必要がありますか?前もって感謝します。

答えて

13

私はまだ多くの用語を学んでおり、それは私のために綴られている必要があります。基底クラス名とプロジェクト名はTestSite

  • ある

    • 私のクラスが含まれている名前空間がBusinessLogic
    • です:場合場合は、あなたのいずれかが一例として...

      が同じことを必要としますクラス名は...

      Web.configファイル内

    PageAuthorizationです3210

    <configuration> 
    <system.web> 
        <httpModules> 
        <add type= "BusinessLogic.PageAuthorization, TestSite" name="PageAuthorization" /> 
        </httpModules> 
    </system.web> 
    </configuration> 
    

    私の場合は、私のクラスにIHttpModuleというマークを付ける必要がありました。クラスの定義は次のようになります。これに追加するには

    public class PageAuthorization : IHttpModule 
    
  • +3

    モジュールファイルがWebサイトのApp_Codeフォルダにある場合はどうすればいいですか? –

    12

    typeの値は{Class}, {assembly}の形式です。

    だからあなたの場合には、それがMyDllNameがコンパイルされたDLLの名前であるMyHttpModule, MyDllName

    でなければなりません。

    +1

    の下に統合mode.useで実行されているが、私は明示的にweb.configファイルでそれをregsiterするために、DLLにCSファイルをコンパイルする必要がない場合? – Praesagus

    +0

    それはWebプロジェクトの一部になることができます。コンパイルされたアセンブリの名前を知るだけで済みます。 –

    +0

    どうすればそのことを知ることができますか? – Praesagus

    2

    、あなたが使用しようとしているの.dllは、プロジェクトのbinフォルダにあることを確認することが重要です。別のプロジェクトで私のモジュールを作成するのに問題がありましたが、.dllファイルをプッシュすることを忘れてしまいました。 IIS 7のためのコンフィギュレーションを探してここに上陸人々のためと統合モードで実行されている上記

    1

    注:

    <configuration> 
    <system.webServer> 
        <modules> 
        <add type= "BusinessLogic.PageAuthorization, TestSite" name="PageAuthorization" /> 
        </modules> 
    </system.webServer> 
    </configuration> 
    
    +0

    @Rishi私はsystem.webserverを設定するのに助けを使うことができました。あなたのお手伝いができたら、私の新しい投稿をhttp://stackoverflow.com/questions/27354083/web-config-system-webserver-errorsに見てください。 – te7

    7

    あなたは.NET 4.0からカスタムモジュールをロードする場合はGACとIIS 6/7クラシックモードあなたがする必要があります以下のコードを使用してください

    <system.web> 
        <httpModules> 
        <add name="ClientHttpModule" type="ClientServHttpModule.ClientHttpModule,ClientServHttpModule,Version=1.0.0.0, Culture=neutral, PublicKeyToken=3af8d8e2f9e8b6c3" /> 
         </httpModules> 
    </system.web> 
    

    ClientServHttpModuleは、カスタムモジュールの名前空間です。 公開鍵トークンはsn.exeアプリから入手できます。

    あなたは、コード

    この中に自分の無知については申し訳ありません
    <system.webServer> 
         <modules> 
          <add name="ClientHttpModule" type="ClientServHttpModule.ClientHttpModule,ClientServHttpModule,Version=1.0.0.0, Culture=neutral, PublicKeyToken=3af8d8e2f9e8b6c3" /> 
         </modules> 
        </system.webServer> 
    
    関連する問題