2012-02-08 3 views
1

Я пытаюсь вызвать веб-службы sharepoint в консольном приложении C#. Код отлично работает, когда я использую WSS моей локальной системы в качестве целевого приложения, но не работаю с другим сервером, доступным через Интернет. Следующий мой код.Ошибка Sharepoint Webservice 401

Webs service = new Webs(); 
      service.PreAuthenticate = true; 
      service.Credentials = new System.Net.NetworkCredential(login, password); 
      //service.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 

      service.Url = url + @"/_vti_bin/webs.asmx"; 

      XmlNode sites = null; 

      try 
      { 
       sites = service.GetWebCollection(); 
      } 
      catch (Exception ex) 
      { 
       return; 
      } 

Очки отметить: 1. ни работать с DefaultNetworkCredentials, ни с моими учетными данными домена. 2. Конечная точка webservice, если вставить в браузер успешно список методов веб-службы. 3. Во всех случаях я получаю несанкционированную ошибку 401 (доступ к удаленному серверу).

Я что-то упустил?

ответ

1

Используйте инструмент, например Fiddler, чтобы захватить трафик http между консольным приложением и SharePoint. Это поможет отладить вашу проблему.

+0

Хотя это не устранило проблему, но, по крайней мере, подтвердило, что с моими служебными вызовами от клиента нет никаких проблем. На сервере есть проблема с правами доступа. –

0

Вы проверили свой аккаунт в App Pool? Возможно, у вашей учетной записи пула приложений недостаточно прав. Измените учетную запись пула приложений на учетную запись с полными разрешениями на вашем сайте и повторите попытку. Он должен работать.

Я также обнаружил, что это может быть проблемой при установке Microsoft Windows XP с пакетом обновления 2 (SP2) или Microsoft Windows Server 2003 с пакетом обновления 1 (SP1). Чтобы решить эту проблему, вы можете выполнить шаги этой статьи KB - http://support.microsoft.com/?scid=kb;en-us;896861&x=14&y=17.

Смежные вопросы