最近想学习 HTTPModule ,找到这篇文章
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcustomhttpmodules.asp我把这文章上面的 C# 源码保存为 HelloWorldModule.cs ,并放在站点根目录。然后按他说的方法配置 web.config结果运行站点根目录一个 aspx 的时候,提示如下错误:说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 未能加载文件或程序集“HelloWorldModule”或它的某一个依赖项。系统找不到指定的文件。 (E:\web\web.config line 99)源错误: 
行 97: 
行 98:   <httpModules>
行 99:    <add name="HelloWorldModule" type="HelloWorldModule,HelloWorldModule" /> 
行 100:  </httpModules>
行 101:
 源文件: E:\web\web.config    行: 99 请问是什么地方出了问题?应如何改正?

解决方案 »

  1.   

    检查你修改的web.config文件是不是当前站点的?
    检查<httpModules>标签是不是在 <system.web>节点内
    检查你的命名空间是HelloWorldModule
    检查你的程序集是HelloWorldModule
    ?你的类名怎么没写啊
      

  2.   

    To楼上:
    我修改的web.config文件确实是当前站点的
    <httpModules>标签确实是在 <system.web>节点内检查你的命名空间是HelloWorldModule——请问阁下说的是什么名空间?C#程序中的还是 Web.config指定的?检查你的程序集是HelloWorldModule——请问什么叫程序集?
    ?你的类名怎么没写啊——这个我不懂了我觉得最有可以的地方就是:
    把这文章上面的 C# 源码保存为 HelloWorldModule.cs ,并放在站点根目录。
    这步请问我这步有没有做错?
      

  3.   

    <add name="HelloWorldModule" type="HelloWorldModule,HelloWorldModule" /> 
    检查你你的httpmodule的命名空间是否为HelloWorldModule
      

  4.   

    httpmodule的命名空间是HelloWorldModule,没错
      

  5.   

    还有,我的 CS 文件是用记事本创建并编写出来的,不是用 studio.net 创建的
    会不会是这步错了?
      

  6.   

    1、楼主直接把 .cs 文件放在网站根目录是错误的。应该创建一个 C#类库 工程,把代码编译成dll
    2、它给出的代码仅仅是一个类,是不完整的,应该把这个类放进一个名空间(就叫 HelloWorldModule 吧)
    3、把编译出来的 dll 放在网站根目录下的 bin 目录
    4、<add name="HelloWorldModule" type="HelloWorldModule.HelloWorldModule,HelloWorldModule" /> 才是正确的