1

我正在尝试通过 Copy Web 服务使用简单的 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 管理员告诉我只有一台服务器,没有负载平衡等)。

非常感谢!

4

1 回答 1

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;博士:

  • 此错误消息可能由客户端上错误配置的绑定触发。
  • 确保您的绑定名称在生成的代码和配置文件中保持一致。最简单的方法是将它们保留为默认值。
于 2018-11-22T23:21:05.033 回答