locked
WebService(UpdateListItems)を使用してリストのアイテムを更新するとエラーとなる(ErrorCode:0x80070005 ErrorText:アクセスが拒否されました。 この操作の実行またはこのリソースにアクセスするための権限がありません。 RRS feed

  • 質問

  • List.UpdateListItems()を使用して更新した際に、エラー(0x80070005 )となる場合があるのですが、原因がわかりません。

    同じユーザーを使用して例えば100件更新する場合に、そのうちの1件だけがアクセス拒否によりエラーとなってしまいます。

    同じ事象や解決方法をご存知でしたら教えてください。

    環境:

    Windows 2008 R2 + SharePoint 2010 + SQL Server 2008 R2

     

    コードは、基本的にはMSDNのサンプルに似たコードです。

    http://msdn.microsoft.com/ja-jp/library/ms440289.aspx

    コード:

    batchElement.InnerXml = "<Method ID='1' Cmd='Update'>" +
       <Field Name='ID'>7</Field>" +
      <Field Name='Hoge'>hoge</Field>" 
       </Method>";
    
    try
    {
       XmlNode ndReturn = listService.UpdateListItems(strListID, batchElement);
       // ErrorCode(0x80070005) 
       // ErrorText(アクセスが拒否されました。この操作の実行またはこのリソースにアクセスするための権限がありません。)
       string error = ndReturn.FirstChild.InnerText;
    }
    catch (SoapServerException ex)
    {
       MessageBox.Show(ex.Message);
    }

     

     


    • 編集済み iamsalt 2012年2月2日 10:12
    2012年2月2日 10:10

すべての返信

  • 直接はUpdateListItemでエラーが発生しているのではなく、SPList.BreakRoleInheritance メソッド実行時に例外が発生したあとに

    UpdateListItemでエラーとなっていました。

    SPList.BreakRoleInheritance メソッドで例外発生後にアイテムの編集・削除、権限の管理の閲覧がシステムアカウントでもできなくなりました。

    回避方法などご存知でしたらおしえてください。

    2012年2月8日 1:39
  • 直接はUpdateListItemでエラーが発生しているのではなく、SPList.BreakRoleInheritance メソッド実行時に例外が発生したあとに

    UpdateListItemでエラーとなっていました。

    SPList.BreakRoleInheritance メソッドで例外発生後にアイテムの編集・削除、権限の管理の閲覧がシステムアカウントでもできなくなりました。

    回避方法などご存知でしたらおしえてください。

    StackTrace:    場所 Microsoft.SharePoint.Library.SPRequestInternalClass.ResetSecurityScope(String bstrUrl, UInt32 dwObjectType, String bstrObjUrl, Guid guidDoc, Boolean bUnique, Boolean bCopyRoleAssignments, Boolean bClearSubScopes, Guid& pguidScopeId, Int32& piError)
       場所 Microsoft.SharePoint.Library.SPRequest.ResetSecurityScope(String bstrUrl, UInt32 dwObjectType, String bstrObjUrl, Guid guidDoc, Boolean bUnique, Boolean bCopyRoleAssignments, Boolean bClearSubScopes, Guid& pguidScopeId, Int32& piError)
       場所 Microsoft.SharePoint.SPSecurableObjectImpl.RevertRoleInheritance(Boolean copyRoleAssignments, Boolean clearSubScopes)
       場所 Microsoft.SharePoint.SPListItem.BreakRoleInheritance(Boolean copyRoleAssignments, Boolean clearSubscopes) 
    2012年2月8日 1:40