0

这几天我测试了一个小应用程序,它应该被 web 服务读取一个 SPList 并显示内容。不幸的是它不起作用。我总是遇到同样的失败:

System.Web.Services.Protocols.SoapException:引发了“Microsoft.SharePoint.SoapServer.SoapServerException”类型的异常。

北 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 消息,WebResponse 响应,流 responseStream,布尔 asyncCall)

北 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] 参数)

bei NeuerTestWebservice_4_2.webserviceSCC.Lists.GetListItems(String listName, String viewName, XmlNode query, XmlNode viewFields, String rowLimit, XmlNode queryOptions, String webID) in d:\VisualStudio2012\WebserviceTests\NeuerTestWebservice_4_2\NeuerTestWebservice_4_2\Web References\webserviceSCC\Reference.cs :泽勒 455。

在 d:\VisualStudio2012\WebserviceTests\NeuerTestWebservice_4_2\NeuerTestWebservice_4_2\Form1.cs:Zeile 30 中的北 NeuerTestWebservice_4_2.Form1.btnFill_Click(Object sender, EventArgs e)。

我的网络参考如下所示:http ://rootwebsite.de/_vti_bin/Lists.asmx?wsdl/soap (好的 - 目前这是一个站点,但我想稍后选择网站和列表)这是我的代码:

 ...

    private void btnFill_Click(object sender, EventArgs e)
    {
        try
        {
           webserviceSCC.Lists service = new webserviceSCC.Lists();
           service.UseDefaultCredentials = true;

           XmlNode nodes = service.GetList("Inhalts- und Strukturberichte");  //don´t get a failure, if I add "?wsdl/soap" to the Webservice-Referenz ("/_vti_bin/Lists.asmx?wsdl/soap")
           XmlNode listItems = service.GetListItems("Inhalts- und Strukturberichte", "Alle Elemente", null, null, "100", null, null); //here (GetListItems) I get the failure always
          //XmlNode listItems = service.GetListItems("Inhalts- und Strukturberichte", null, null, viewFields, null, null, null);

                    ...
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
  }

我测试了不同的网络服务参考。你有什么想法,因为我失败了吗?你有我的好榜样吗?

谢谢。


谢谢你。我之前测试过的网址 - 失败时没有变化。我也遇到了这个失败:

例外:抛出:“Die Datei oder Assembly "NeuerTestWebservice_4_2.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden。Das System kann die angegebene Datei nicht finden。” (System.IO.FileNotFoundException) 抛出 System.IO.FileNotFoundException:“Die Datei oder Assembly "NeuerTestWebservice_4_2.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden。”

webservice初始化后直接:webserviceSCC_Sys.Lists service = new webserviceSCC_Sys.Lists(); 对这些信息有帮助吗?

4

2 回答 2

1

这是我调用两个不同的网络服务的方法,它可以正常工作。我怀疑您需要service.Url在您的财产上指定财产。

(请注意,我正在使用 using 语句来正确处理 Web 服务。)

public void TestPermissions(String objectName, String objectType, LoggedInUserDetails userDetails, string siteUrl)
{
    XmlNode perms;
    XmlNode userInfo;
    XmlNode permissions;
    XmlNode rolesFromUser;

    using (SharePermissions.Permissions permissionService = new SharePermissions.Permissions())
    {
        List<object> names = new List<object>();
        permissionService.Credentials = new NetworkCredential(
                userDetails.UserName,
                Decrypt(userDetails.Password, "utrfirfu7j6r" + userDetails.MacAddress));
        permissionService.Url = siteUrl + @"/_vti_bin/Permissions.asmx";

        perms = permissionService.GetPermissionCollection(objectName, objectType);
    }

    using (ShareGroups.UserGroup userGroupService = new ShareGroups.UserGroup())
    {
        userGroupService.Url = siteUrl + @"/_vti_bin/UserGroup.asmx";
        userGroupService.Credentials = new NetworkCredential(
            userDetails.UserName,
            Decrypt(userDetails.Password, "asdasdasdsad" + userDetails.MacAddress));

        permissions = userGroupService.GetRolesAndPermissionsForCurrentUser();
        userInfo = userGroupService.GetUserInfo(userDetails.ResolvedUserName);
    }
}
于 2013-02-06T13:10:04.453 回答
1

您的 GetListItems() 参数导致错误。有关示例,请参见http://msdn.microsoft.com/en-us/library/websvclists.lists.getlistitems.aspx。根据文档,viewName 参数(第二个)应该是视图的 Guid,或者默认视图的空字符串,而不是视图的名称。

于 2013-02-08T04:48:04.983 回答