C# 使用webservice失败

C# 使用webservice失败,c#,web-services,sharepoint-2010,visual-studio-2012,webservice-client,C#,Web Services,Sharepoint 2010,Visual Studio 2012,Webservice Client,几天来,我一直在测试一个小应用程序,它将由webservice读取SPList并显示内容。不幸的是,它不起作用。我总是遇到同样的失败: System.Web.Services.Protocols.SoapException:类型的异常 引发了“Microsoft.SharePoint.SoapServer.SoapServerException” 贝 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapCli

几天来,我一直在测试一个小应用程序,它将由webservice读取SPList并显示内容。不幸的是,它不起作用。我总是遇到同样的失败:

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

贝 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage 消息,WebResponse,流响应Stream,布尔值 异步调用)

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

bei NeuerTestWebservice_4_2.webserviceccc.Lists.GetListItems(字符串列表名、字符串视图名、XmlNode查询、XmlNode视图字段、字符串 行限制、XmlNode查询选项、字符串webID) d:\VisualStudio2012\webservicests\NeuerTestWebservice\u 4\u 2\NeuerTestWebservice\u 4\u 2\Web References\webserviceSCC\Reference.cs:zeile455

bei NeuerTestWebservice_4_2.Form1.btnFill_单击中的(对象发送方、事件参数) d:\VisualStudio2012\webservicests\NeuerTestWebservice\u 4\u 2\NeuerTestWebservice\u 4\u 2\Form1.cs:Zeile 30

我的webreference如下所示:(好的-目前这是一个网站,但我想选择该网站并在以后列出) 这是我的代码:

 ...

    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());
        }
  }
我测试了不同的Web服务引用。 你知道吗,因为我失败了?你给我举了个好例子吗

谢谢


多谢各位。我之前测试过的url——失败时没有任何变化。我也经历过这样的失败:

异常:引发:“模具日期顺序程序集” “NeueTestWebService_4_2.XmlSerializers,版本=1.0.0.0, 文化=中性,PublicKeyToken=空“以表示对davon的支持 这是一个非常简单的系统 finden。“(System.IO.FileNotFoundException)A 引发System.IO.FileNotFoundException:“死亡日期顺序程序集 “NeueTestWebService_4_2.XmlSerializers,版本=1.0.0.0, 文化=中性,PublicKeyToken=空“以表示对davon的支持 这是一个非常简单的系统 芬登。”


直接在初始化webservice之后:webserviceSCC_Sys.Lists service=newWebServiceSCC_Sys.Lists();有助于了解这些信息吗?

这里有一个方法,我可以调用两个不同的Web服务,它可以正常工作。我怀疑您需要在您的服务器上指定
service.Url
属性

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

public void TestPermissions(String objectName、String objectType、LoggedInUserDetails、userDetails、String siteUrl)
{
xmlnodeperms;
XmlNode用户信息;
XmlNode权限;
XmlNode角色来自用户;
使用(SharePermissions.Permissions permissionService=new SharePermissions.Permissions())
{
列表名称=新列表();
permissionService.Credentials=新网络凭据(
userDetails.UserName,
解密(userDetails.Password,“utrfirfu7j6r”+userDetails.MacAddress));
permissionService.Url=siteUrl+/\u vti\u bin/Permissions.asmx”;
perms=permissionService.GetPermissionCollection(objectName,objectType);
}
使用(ShareGroups.UserGroup userGroupService=new ShareGroups.UserGroup())
{
userGroupService.Url=siteUrl+@“/_vti_bin/UserGroup.asmx”;
userGroupService.Credentials=新网络凭据(
userDetails.UserName,
解密(userDetails.Password,“asdasdasad”+userDetails.MacAddress));
permissions=userGroupService.GetRolesAndPermissionsForCurrentUser();
userInfo=userGroupService.GetUserInfo(userDetails.ResolvedUserName);
}
}

GetListItems()的参数导致错误。有关示例,请参见。根据文档,viewName参数(第二个)应该是视图的Guid,或者是默认视图的空字符串,而不是视图的名称。

No-它是sharepoint 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);
    }
}