服务器错误加载HttpModule

时间:2012-06-19 01:16:34

标签: web-config httpmodule iis-express

我很难过,需要一些解决以下错误的建议 我正在使用配置为使用的应用程序 我创建的HttpModule:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Could not load type 'namespaceResponseModifier.ResponseModifer'. 

...

Exception Details: System.Web.HttpException: Could not load
type 'namespaceResponseModifier.ResponseModifer'.

...

Stack Trace: 

[HttpException (0x80004005): Could not load type 'namespaceResponseModifier.ResponseModifer'.]

...

[ConfigurationErrorsException: Could not load type 'namespaceResponseModifier.ResponseModifer'.]

...

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272 

Web服务器是IIS Express 7.0。

在web.config文件中,元素的代码是:

   <system.webServer>
       <modules>
           <add name="ResponseModifier"
                type="namespaceResponseModifier.ResponseModifer" />
       </modules>
   </system.webServer>

The assembly for the HttpModule resides in 
C:\...\HttpModulePreSendRequestContentCS\Bin\ResponseModifier.dll

我还尝试将HttpModule的源放在App_Code目录中 但是在加载HttpModule时我仍然遇到服务器错误。

在第二种情况下,我收到以下错误:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Could not load type 'namespaceResponseModifier.ResponseModifer' from assembly 'App_Code'. 

...

Exception Details: System.TypeLoadException: Could not load
type 'namespaceResponseModifier.ResponseModifer' from assembly 'App_Code'.

...

Stack Trace: 

[TypeLoadException: Could not load type 'namespaceResponseModifier.ResponseModifer' from
assembly 'App_Code'.]

...

[ConfigurationErrorsException: Could not load type 'namespaceResponseModifier.ResponseModifer'
from assembly 'App_Code'.]

...

[HttpException (0x80004005): Could not load type 'namespaceResponseModifier.ResponseModifer'
from assembly 'App_Code'.]

...

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

我也尝试使用Visual Studio开发Web服务器而不是IIS Express Web服务器。 我用这两种方案尝试了这个服务器:   - 使用bin文件夹中的程序集   - 使用App_Code文件夹中的源代码。

这些方案分别产生以下错误:

Server Error in '/HttpModulePreSendRequestContentCS' Application.
--------------------------------------------------------------------------------

Configuration Error 

...

Parser Error Message: Could not load type 'ResponseModifer'.
(C:\...\HttpModulePreSendRequestContentCS\web.config line 8)

...

Source File: C:\...\HttpModulePreSendRequestContentCS\web.config    Line: 8 

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272


Server Error in '/HttpModulePreSendRequestContentCS' Application.
--------------------------------------------------------------------------------

Configuration Error 

...

Parser Error Message: Could not load type 'ResponseModifer' from assembly 'App_Code'.  
(C:\...\HttpModulePreSendRequestContentCS\web.config line 8)

...

Source File: C:\...\HttpModulePreSendRequestContentCS\web.config    Line: 8 

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

非常感谢任何关于如何解决问题的建议。

2 个答案:

答案 0 :(得分:3)

老问题,但我相信你的模块添加不正确。

<add name="NameOfModule" type="Namespace.NameOfModule, AssemblyName" />

这是我看到的典型方式,所以不知道这个模块的命名空间,它看起来更接近:

<add name="ResponseModifier" type="ActualNameSpaceGoesHere.namespaceResponseModifier.ResponseModifer, ResponseModifier" />

答案 1 :(得分:0)

在上面的答案中,为什么要将程序集的名称添加到类型的末尾?这对我来说毫无意义。