找不到 GAC 部署的声明成员资格提供程序程序集



我正在为 SharePoint Foundation 部署创建自定义成员资格提供程序。我已经生成并部署到全局程序集缓存,但在登录页尝试加载时出现错误。我不确定为什么找不到已签名的 GAC 部署的程序集。

说明:处理此请求所需的配置文件时出错。请查看下面的特定错误详细信息并相应地修改配置文件。任何帮助或指导不胜感激。

融合跟踪的 IIS 错误:

Parser Error Message: Could not load file or assembly 'myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d' or one of its dependencies. The system cannot find the file specified.
Source Error: 
Line 322:        <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
Line 323:        <add name="ADMembers" 
Line 324:           type="myproviderProvider.myMembershipProvider, myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d" 
Line 325:           connectionStringName="myconn" 
Line 326:           enableSearchMethods="true" 

Source File: C:inetpubwwwrootwssVirtualDirectories443web.config    Line: 324 
Assembly Load Trace: The following information can be helpful to determine why the assembly 'myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d' could not be loaded.

=== Pre-bind state information ===
LOG: User = NT AUTHORITYIUSR
LOG: DisplayName = myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d
 (Fully-specified)
LOG: Appbase = file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/
LOG: Initial PrivatePath = C:inetpubwwwrootwssVirtualDirectories443bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:inetpubwwwrootwssVirtualDirectories443web.config
LOG: Using host configuration file: C:WindowsMicrosoft.NETFramework64v2.0.50727Aspnet.config
LOG: Using machine configuration file from C:WindowsMicrosoft.NETFramework64v2.0.50727configmachine.config.
LOG: Post-policy reference: myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/root/87797408/25d55f52/myprovider.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/root/87797408/25d55f52/myprovider/myprovider.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/bin/myprovider.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/bin/myprovider/myprovider.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/_app_bin/myprovider.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/_app_bin/myprovider/myprovider.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/root/87797408/25d55f52/myprovider.EXE.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET Files/root/87797408/25d55f52/myprovider/myprovider.EXE.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/bin/myprovider.EXE.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/bin/myprovider/myprovider.EXE.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/_app_bin/myprovider.EXE.
LOG: Attempting download of new URL file:///C:/inetpub/wwwroot/wss/VirtualDirectories/443/_app_bin/myprovider/myprovider.EXE.

程序集的 gacutil 列表输出

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.5448; ASP.NET Version:2.0.50727.5456 
 The Global Assembly Cache contains the following assemblies:
  myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d,
processorArchitecture=MSIL
              SCHEME: <WINDOWS_INSTALLER>  ID: <MSI>  DESCRIPTION : <Windows Ins
taller>
Number of items = 1

web.config enrty for the membership provider:

<add name="ADMembers" 
           type="MyClaimsProvider.MyMembershipProvider, myprovider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4120f2d354ae484d" 
           connectionStringName="myconn" 
           enableSearchMethods="true" 
           attributeMapUsername="sAMAccountName" /> 

您是否尝试重置 IIS?应用程序池将 GAC:ed dll:s 缓存在内存中,需要回收才能加载新的应用程序池。

我创建了一个针对 .Net 3.5 的新项目和设置项目,并在其中处理了我的类源代码。(之前的尝试针对 VS 2010 默认净值 4。进入下一个错误(我的类无法加载)但希望这是某个地方的一些愚蠢的错别字。

感谢Rikard始终有效的建议。

最新更新