我测试了一个小应用程序,应该通过webservice读取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 参考文献\ webserviceSCC \ Reference.cs:Zeile 455。
bei NeuerTestWebservice_4_2.Form1.btnFill_Click(Object sender,EventArgs e)in d:\ VisualStudio2012 \ WebserviceTests \ NeuerTestWebservice_4_2 \ NeuerTestWebservice_4_2 \ Form1.cs:Zeile 30。
我的网络参考如下所示: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());
}
}
我测试了不同的webservice-references。 你知道吗,因为我失败了吗?你有一个很好的例子吗?
感谢。
初始化webservice后直接异常:抛出:“Die Datei oder Assembly “NeuerTestWebservice_4_2.XmlSerializers,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = null“oineeineAbhängigkeitdavon wurde nicht gefunden。 Das System kann die angegebene Datei nicht finden。“(System.IO.FileNotFoundException)A 抛出了System.IO.FileNotFoundException:“Die Datei oder Assembly “NeuerTestWebservice_4_2.XmlSerializers,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = null“oineeineAbhängigkeitdavon wurde nicht gefunden。 Das System kann die angegebene Datei nicht 芬登“。
:webserviceSCC_Sys.Lists service = new webserviceSCC_Sys.Lists();帮助了解这些信息?
答案 0 :(得分:1)
这是一种方法,我可以调用两个不同的Web服务,它可以正常工作。我怀疑你需要在你的身上指定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);
}
}
答案 1 :(得分:1)
您的GetListItems()参数导致错误。有关示例,请参阅http://msdn.microsoft.com/en-us/library/websvclists.lists.getlistitems.aspx。根据文档,viewName参数(2nd)应该是视图的Guid,或者是默认视图的空字符串,而不是视图的名称。