0

何日もの間、Web サービスによって SPList が読み取られ、コンテンツが表示される小さなアプリケーションをテストしました。残念ながら、うまくいきません。私はいつも同じ失敗をします:

System.Web.Services.Protocols.SoapException: 'Microsoft.SharePoint.SoapServer.SoapServerException' 型の例外がスローされました。

System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage メッセージ、WebResponse 応答、ストリーム responseStream、ブール値 asyncCall)

bei System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

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 :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 (OK - 現時点ではこれは 1 つのサイトですが、後でウェブサイトとリストを選択したい) これは私のコードです:

 ...

    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 をテストしました。私は失敗したので、アイデアはありますか?私にとって良い例はありますか?

ありがとう。


ありがとうございました。以前にテストした URL - 失敗時に変更はありません。私もこの失敗をします:

Exception:Thrown: "Die Datei order Assembly "NeuerTestWebservice_4_2.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" or eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden." (System.IO.FileNotFoundException) System.IO.FileNotFoundException がスローされました: "Die Datei order Assembly "NeuerTestWebservice_4_2.XmlSerializers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" ore abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.」

Web サービスの初期化直後: webserviceSCC_Sys.Lists service = new webserviceSCC_Sys.Lists(); この情報は役に立ちますか?

4

2 に答える 2

1

これが2つの異なるWebサービスを呼び出すメソッドです。正しく機能します。service.Urlプロパティを指定する必要があると思います。

(Webサービスを正しく破棄するためにusingステートメントを使用していることに注意してください。)

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 パラメーター (2 番目) は、ビューの名前ではなく、ビューの Guid、または既定のビューの空の文字列である必要があります。

于 2013-02-08T04:48:04.983 に答える