Sharepoint 2010 Web服务 - 找不到System.Web.Extensions.dll

时间:2013-08-19 12:06:52

标签: .net sharepoint gac

我正在尝试使用简单的C#控制台应用程序通过复制网络服务将文档上传到Sharepoint(2010)。

有时它会起作用,但我会出现断断续续的失败。通过Fiddler查看http响应,我可以看到我得到的错误是:

The given assembly name or codebase, 'C:\Windows\assembly\GAC_MSIL\System.Web.Extensions\3.5.0.0__31bf3856ad364e35\System.Web.Extensions.dll', was invalid.

模式不是完全随机的...它可能会工作几个小时,然后开始连续失败一段时间。

有没有人有任何想法:

  • 为什么会出现此错误

  • 为什么问题是间歇性的(Sharepoint管理员告诉我,只有一台服务器,没有负载平衡等)。

非常感谢!

1 个答案:

答案 0 :(得分:0)

此答案未解决此特定问题,但确实解决了我对Sharepoint 2010 Lists.asmx 表现为

的问题
The given assembly name or codebase, 'C:\Windows\assembly\GAC_MSIL\System.Web.Extensions\3.5.0.0__31bf3856ad364e35\System.Web.Extensions.dll', was invalid.

(搜索该错误消息将我引到了这里。)

我使用一个测试项目作为支架来使我的服务客户端成功连接并开发查询代码。一切顺利之后,将其连接到实际应用程序,并将<system.serviceModel>元素添加到应用程序的.config文件中。

但是,这样做是为了重命名所有.config文件中的绑定,以符合项目的命名约定。这导致请求失败,并显示上述错误消息。

搜索项目后,我发现生成的文件configuration.svcinfoconfiguration91.svcinfoLists.wsdl包含对旧的默认绑定名称的引用。更新这些之后,一切正常。

请注意,如果服务引用已更新,则这些绑定名称将重置。在这种情况下,由于服务寿命将尽,因此无需更新服务参考。但是在大多数情况下,应避免编辑生成的代码。

TL; DR:

  • 此错误消息可能是由客户端上配置错误的绑定触发的。
  • 确保绑定名称在生成的代码和配置文件中保持一致。最简单的方法是将其保留为默认值。