locked
Permissions are insufficient for performing ListChildren() RRS feed

  • Question

  • I'm developing an asp.net app that will list the reports available on the report server.  The app works OK on my local machine but when I deploy it I run into a permissions problem:

     Exception Details: System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: The permissions granted to user 'NT AUTHORITY\NETWORK SERVICE' are insufficient for performing this operation. ---> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user 'NT AUTHORITY\NETWORK SERVICE' are insufficient for performing this operation.
      at Microsoft.ReportingServices.Library.ListChildrenAction.PerformActionNow()
      at Microsoft.ReportingServices.Library.RSSoapAction`1.Execute()
      at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.ListChildren(String Item, Boolean Recursive, CatalogItem[]& CatalogItems)
      --- End of inner exception stack trace ---
      at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.ListChildren(String Item, Boolean Recursive, CatalogItem[]& CatalogItems)
      at Microsoft.ReportingServices.WebServer.ReportingService2005.ListChildren(String Item, Boolean Recursive, CatalogItem[]& CatalogItems)

    My code uses the DefaultCredentials:
    ReportingService2005 rService = new ReportingService2005();
    rService.Credentials = System.Net.CredentialCache.DefaultCredentials;
    CatalogItem[] catalogItems;
    catalogItems = rService.ListChildren("/", true);

    I can avoid the exception if I use the Administrator account:

    System.Net.CredentialCache cache = new System.Net.CredentialCache();
    // Add a NetworkCredential instance to CredentialCache.
    // Negotiate for NTLM or Kerberos authentication.
    cache.Add(new Uri(ReportServer), "Negotiate", new System.Net.NetworkCredential("Administrator", "<password>", "<domain>"));
    //Assign CredentialCache to the Web service Client Proxy(myProxy) Credentials property.
    rService.Credentials = cache;

    I'm pretty sure using the Administrator account here is not the best practice.  Any suggestions?

    Thanks,
    Al
    Wednesday, January 16, 2008 3:10 PM

Answers

  • Hi,

     

    Make sure the account under which your code runs when deployed has Browse permissions on the root folder.

     

    Hope this helps,

    Bill

     

    Tuesday, February 5, 2008 11:25 AM

All replies

  • Hi,

     

    Make sure the account under which your code runs when deployed has Browse permissions on the root folder.

     

    Hope this helps,

    Bill

     

    Tuesday, February 5, 2008 11:25 AM
  • Bill,

    Ohmigod it worked!  I can't thank you enough.  I've looked all over for a solution. Thank you, thank you, thank you.  I went into Report Manager and then to the Properties tab and clicked on 'New Role Assignment'.  I specified 'Group or User Name' = 'Network Service' checked the 'Browser' role and then clicked OK.  That fixed the problem.

    Thanks,
    Al
    • Proposed as answer by steve-areeno Thursday, April 9, 2009 3:20 PM
    Tuesday, February 5, 2008 10:54 PM