2016-10-14 21 views
0

問題の解決にお役立てください。 私はアプリケーションを持っています。これは、SharePoint WebサービスList.asmxを呼び出してリスト要素を取得します。 ここにコード:SharePoint Webサービス。エラー401:権限がありません

Lists listService = new Lists(); 

NetworkCredential credentials = new NetworkCredential(); 
credentials.UserName = serviceUserName 
credentials.Password = servicePassword; 
credentials.Domain = domain; 

listService.Credentials = credentials; 
listService.Url = serviceUrl.ToString(); 
XmlDocument xmlDoc = new XmlDocument(); 
XmlNode nodeListItems = listService.GetListItems(categoryListName.ToString(), null, null, null, "10000", null, null); 

資格情報ユーザーはリストサイトにアクセスできます。 任意のサーバーにアプリケーションをデプロイする場合は、okです。 Listの要素を取得します。しかし、リストサイトで同じサーバーにアプリケーションをデプロイすると、エラー401:Unauthorizedが表示されます。

どうすれば問題を解決できますか?私は本当に同じサーバーにアプリケーションを展開する必要があります。

+0

それは、SharePoint 2010またはSharePoint 2013またはSharePoint O365です?? – Saratchandra

答えて

0

少しの研究と私はそれの背後にある理由を見つけました。 .Net 3.5フレームワークでは、SharePointのWebサービス認証に影響するループバックの問題が発生します。この問題では、どのモード(クライアント/ツール/サーバー)でもWebサービスにアクセスすることはできません。マイクロソフトではこれを紹介することに決めましたが、残念ながらSharePointでさまざまなことが起こります。 ループバックの問題を解決するには、レジストリエントリをWebフロントエンドサーバーに作成する必要があります。

実装 各SharePoint Webフロントエンドサーバーで以下の手順を実行します。

  1. 開始をクリックし、ファイル名を指定して実行をクリックする、regeditを入力して、OKを次にクリックします。レジストリエディタで
  2. 、以下のレジストリキーを探してクリック: ます。HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \コントロール\ Lsaに
  3. 右クリックしLsaに、新規作成]をポイントし、[DWORD値]をクリックします。
  4. DisableLoopbackCheckと入力し、Enterキーを押します。
  5. DisableLoopbackCheckを右クリックし、[変更]をクリックします。
  6. [値のデータ]ボックスに1と入力し、[OK]をクリックします。
  7. レジストリエディタを終了し、コンピュータを再起動します。

https://askmanisha.wordpress.com/2014/03/26/401-unauthorized-error-while-calling-a-web-service/

関連する問題