0

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

有两个变量:

SPWeb spWeb
string formsUser   //username

我正在尝试解决用户

SPUser userF = spWeb.EnsureUser(formsUser);

此行不断抛出异常:

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

我项目的目标框架是 .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,如果这一行中的所有内容都与Microsoft.SharePoint汇编有关

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

有没有什么机会,SPUser就是偷偷尝试使用System.Web.Extensions,却失败了?

4

1 回答 1

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" />
于 2012-06-21T08:04:09.057 回答