为什么我的自定义SessionStateProvider出现“无法加载类型”错误?

时间:2010-03-29 17:08:59

标签: asp.net gac session-state

我的同事为我创建了一个自定义SessionStateProvider,用于我的ASP.net应用程序。我将文件CustomSessionStateProvider添加到我的VS2008 Web应用程序项目中,并将相应的引用放在web.config中,它可以正常工作。

但是,我的主管要我将其设置为GAC参考。在我的办公室,我们创建了许多DLL,我们将其用作不同项目的GAC参考。

如果我将CustomSessionStateProvider添加到全局程序集缓存中,我的页面会抛出could not load type CustomASP.CustomSessionStateProvider错误。简单地从GAC中删除DLL使其再次起作用,但我想将其设置为GAC参考。

可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:2)

您需要更改web.config以包含班级的fully qualified name。它看起来像这样:

CustomASP.CustomSessionStateProvider, CustomASP, Culture=neutral, PublicKeyToken=XXXXX 

这假定程序集名为“CustomASP”,并且该类位于名为“CustomASP”的名称空间中,并且类名称为“CustomSessionStateProvider”。此外,您可能已经知道,您的程序集需要签名才能加入GAC。因此,您应该将XXXX更改为用于签名的密钥的公钥标记。

希望它有所帮助。