2017-09-26 108 views
0

我是很新的VS Web应用程序和模块,未能加载类型模块C#

我试图运行/调试一个HTTP模块,所以我遵循了这一实用的教学课程:

https://dotnetcodr.com/2015/07/10/how-to-register-a-custom-http-module-in-your-net-web-application/

我在示例WebApplication中调试了他的测试模块。

现在我联系我的模块,WebApplication的样本里面,我编辑的的Web.config替换这样的:我的模块

<add name="DescriptiveNameOfModule" type="MyHttpModule11.MyHttpModule"/> 

​​

但是当我运行它,我得到包含以下错误的页面:

[HttpException (0x80004005): Could not load type 'MyHttpModule11.MyHttpModule'.] 
    System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) +9972697 
    System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +38 

[ConfigurationErrorsException: Could not load type 'MyHttpModule11.MyHttpModule'.] 
    System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, XmlNode node, Boolean checkAptcaBit, Boolean ignoreCase) +353 
    System.Web.Configuration.ConfigUtil.GetType(String typeName, String propertyName, ConfigurationElement configElement, Boolean checkAptcaBit) +21 
    System.Web.Configuration.Common.ModulesEntry.SecureGetType(String typeName, String propertyName, ConfigurationElement configElement) +39 
    System.Web.Configuration.Common.ModulesEntry..ctor(String name, String typeName, String propertyName, ConfigurationElement configElement) +42 
    System.Web.HttpApplication.BuildIntegratedModuleCollection(List`1 moduleList) +160 
    System.Web.HttpApplication.GetModuleCollection(IntPtr appContext) +1068 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +82 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296 

[HttpException (0x80004005): Could not load type 'MyHttpModule11.MyHttpModule'.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10085804 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254 

可能是什么原因? 可能是由IIS的不同版本引起的?

+0

您的模块名称是否非常敏感以至于您已经用上面的'[package]。[classname]'取代了它?如果它是'MyHttpModule11.IHttpModule',那么问题可能与尝试加载一个接口而不是具体类相关? – CalC

+0

谢谢@ Cal279,名字不太敏感,我会编辑我的文章 – eeadev

回答

2

您可能需要包含此类型所在的程序集的名称。例如。

<modules> 
    <add name="DescriptiveNameOfModule" type="MyHttpModule11.MyHttpModule, AssemblyNameWithoutExtension"/> 
</modules> 
+0

我的情况是什么汇编?类名称,模块名称? – eeadev

+1

它最有可能与dll的名称相同(最后没有“.dll”)。 – CalC

+0

它的工作原理,谢谢! – eeadev