2012-02-08 21 views
1

C#コンソールアプリケーションでsharepoint Webサービスを呼び出そうとしています。このコードは、ローカルシステムのWSSをターゲットアプリケーションとして使用しても、Web経由でアクセス可能な別のサーバーでは動作しません。以下は私のコードです。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.ブラウザにペーストされたWebサービスエンドポイントは、Webサービスメソッドを正常にリストします。 3.(リモートサーバーにアクセスする)すべてのケースで401の不正なエラーが発生します。

何か不足していますか?

答えて

1

Fiddlerのようなツールを使用して、コンソールアプリケーションとSharePoint間のhttpトラフィックをキャプチャします。それはあなたの問題が何かをデバッグするのに役立ちます。

+0

これで問題は解決されませんでしたが、クライアントからのサービスコールに問題がないことを少なくとも確認しました。サーバーにアクセス許可の問題があります。 –

0

あなたのアプリケーションプールアカウントを確認しましたか?アプリケーションプールアカウントに十分な権限がない可能性があります。アプリケーションプールアカウントをサイトに完全なアクセス許可を持つアカウントに変更して、もう一度お試しください。それは動作するはずです。

また、Microsoft Windows XP Service Pack 2(SP2)またはMicrosoft Windows Server 2003 Service Pack 1(SP1)をインストールすると、これが既知の問題である可能性があります。これを解決するには、KB資料 - http://support.microsoft.com/?scid=kb;en-us;896861&x=14&y=17の手順に従います。

関連する問題