0

며칠 동안 웹 서비스로 SPList를 읽고 내용을 표시해야하는 약간의 애플리케이션을 테스트했습니다. 불행히도 그것은 작동하지 않습니다.웹 서비스로 작업하여 실패했습니다.

System.Web.Services.Protocols.SoapException : 유형 'Microsoft.SharePoint.SoapServer.SoapServerException'의 예외 던져졌다 나는 항상 같은 실패를 얻을. System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke BEI System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse (SoapClientMessage 메시지 WebResponse를 응답 스트림 responseStream 부울 asyncCall)

BEI

(문자열 methodName로는, 개체 [] 매개 변수),536을에

BEI 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)

BEI NeuerTestWebservice_4_2.Form1.btnFill_Click D에서 (개체 보낸 사람, EventArgs입니다 전자) : \ VisualStudio2012 \ WebserviceTests \ NeuerTestWebservice_4_2 \ NeuerTestWebservice_4_2 \ Form1.cs를이 : ZEILE 내 webreference은 다음과 같습니다 (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()); 
     } 
    } 

다른 웹 서비스 참조를 테스트했습니다. 실패가 발생했기 때문에 아이디어를 얻었습니까? 나에게 좋은 본보기가 있니?

감사합니다.


감사합니다. 내가 전에 테스트 한 URL - 실패시 변경되지 않았습니다.

예외 : 슬로우 나도이 실패 얻을 NeuerTestWebservice_4_2.XmlSerializers "국회 데르 을 Datei 다이", 버전 = 1.0.0.0, 문화 = 중립, PublicKeyToken = null이 "오 데르 아이네 Abhängigkeit davon wurde의 nicht gefunden. Das System kann die angegebene 날짜가 finden. " (System.IO.FileNotFoundException)는 System.IO.FileNotFoundException가 발생했다 : NeuerTestWebservice_4_2.XmlSerializers, 버전 = 1.0.0.0, 문화 = 중립 "국회 데르 을 Datei 다이", PublicKeyToken = null이 "오 데르 아이네 Abhängigkeit davon wurde의 nicht gefunden. Das System kann die angegebene 날짜가 finden. "

웹 서비스를 초기화 한 직후 : webserviceSCC_Sys.Lists service = new webserviceSCC_Sys.Lists(); 이 정보를 제공합니까?

+0

아니요 - 공유 지점 웹 서비스입니다. – Rotaney

답변

1

두 가지 다른 웹 서비스를 호출하는 방법은 올바르게 작동합니다. 나는 당신이 service.Url 속성을 지정해야한다고 생각합니다.

(I 올바르게 웹 서비스를 처리하기 위해 사용하는 문을 사용하고 확인할 수 있습니다.)

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); 
    } 
} 
관련 문제