0

失败,我测试了一些应用程序,应该通过web服务读取SPList并显示内容。不幸的是它不工作。我总是得到同样的错误:通过使用web服务

服务器无法处理请求类型 “Microsoft.SharePoint.SoapServer.SoapServerException”引发的异常。

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

贝 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(串方法名,对象[]参数)

贝NeuerTestWebservice_4_2.webserviceSCC.Lists.GetListItems(串LISTNAME,串的viewName,XmlNode的查询,XmlNode的viewFields,串 rowLimit,XmlNode的queryOptions,串webID)在 d:\ VisualStudio2012 \ WebserviceTests \ NeuerTestWebservice_4_2 \ NeuerTestWebservice_4_2 \网络 参考\ webserviceSCC \ Reference.cs:Zeile 455

贝NeuerTestWebservice_4_2.Form1.btnFill_Click在 d(对象发件人,EventArgs的):\ VisualStudio2012 \ WebserviceTests \ NeuerTestWebservice_4_2 \ NeuerTestWebservice_4_2 \ Form1.cs中:Zeile 30

我的Web引用如下:http://rootwebsite.de/_vti_bin/Lists.asmx?wsdl/soap(OK - 此刻,这是一个网站,但我想选择的网站和列表版本) 这是我的代码:

... 

    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()); 
     } 
    } 

我测试过不同的webservice引用。 你有一个想法,因为我得到失败?你有一个很好的例子吗?

谢谢。


谢谢。我之前测试过的网址 - 在失败时没有任何变化。我得到这个失败,太:

异常:抛出该异常:“死Datei奥德大会 “NeuerTestWebservice_4_2.XmlSerializers,版本= 1.0.0.0, 文化=中立,公钥=空” 奥得EINEAbhängigkeitdavon wurde nicht gefunden。Das System kann die angegebene Datei nicht finden。“ (System.IO.FileNotFoundException)在 System.IO.FileNotFoundException被抛出:“死Datei奥德大会 “NeuerTestWebservice_4_2.XmlSerializers,版本= 1.0.0.0, 文化=中立,公钥=空” 奥得EINEAbhängigkeitdavon wurde nicht gefunden。Das System kann die angegebene Datei nicht finden。“

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

+0

否 - 它是一个共享点webservice – Rotaney

回答

1

这里有一个方法,我打电话给两个不同的webservices,它工作正常。我怀疑你需要指定你的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); 
    } 
}