SharePoint Console程序无法加载System.Web.Extensions,Version = 4.0.0.0程序集

时间:2012-06-19 14:53:57

标签: sharepoint assemblies

我正在编写一个控制台应用程序,它使用SharePoint对象模型来操作SharePoint内部的数据。

有两个变量:

SPWeb spWeb
string formsUser   //username

我正在尝试解析用户

SPUser userF = spWeb.EnsureUser(formsUser);

此行不断抛出异常:

  

无法加载文件或程序集“System.Web.Extensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。

我的项目的Target框架是.Net Framework 3.5。我参考了System.Web.Extensions.dll,版本3.5.0.0 ..

我无法理解:

  1. 为什么我的应用程序需要在版本4.0.0.0而不是3.5.0.0中使用此程序集?
  2. 如果此行中的所有内容都是关于System.Web.Extensions程序集
  3. ,为什么此行会引发Microsoft.SharePoint的异常

    更新
    在上面的示例中,我使用基于表单的用户,因此字符串类似于:i:0#.f|someprovider|john.doe。如果我使用基于Windows的用户,那么i:0#.w|domain\john.doe,则不会抛出此异常。

    SPUser秘密尝试使用System.Web.Extensions并且失败了吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

我的应用中的app.config文件包含system.web/membershiproleManager部分。并且引用了System.Web.Extensions, Version=4.0.0.0

<add name="ClientAuthenticationMembershipProvider" 
     type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />