I'm trying to create an ASP.Net web service that will call the GP web services but when calling the CreateReceivablesInvoice service it is failing with the error "Insufficient authorization to perform this action"
I am connecting to the service as a user that is setup in the Dynamics Security Console as a superuser and have proved that all works correctly when calling the CreateReceivablesInvoice service from a standard Windows Forms app. The same code, however, doesn't work from the ASP.Net web app.
The code is as follows and it fails on the last line:
CompanyKey companyKey; Context context; ReceivablesDocumentKey invoiceKey; CustomerKey customerKey; MoneyAmount invoiceAmount; ReceivablesInvoice receivablesInvoice; Policy receivablesInvoiceCreatePolicy; // Create an instance of the service GPService.DynamicsGPClient wsDynamicsGP = new GPService.DynamicsGPClient(); wsDynamicsGP.ClientCredentials.UserName.UserName = "domain\\username"; wsDynamicsGP.ClientCredentials.UserName.Password = "password"; // Create a context with which to call the service context = new Context(); // Specify which company to use (sample company) companyKey = new CompanyKey(); companyKey.Id = (1); // Set up the context object context.OrganizationKey = (OrganizationKey)companyKey; // Create the document key to uniquely identify the receivables invoice invoiceKey = new ReceivablesDocumentKey(); invoiceKey.Id = invoice.InvoiceNumber; // Create a customer key object to specify the customer customerKey = new CustomerKey(); customerKey.Id = invoice.CustomerNumber; // Create a money amount object to specify the invoice amount invoiceAmount = new MoneyAmount(); invoiceAmount.Currency = "STG"; invoiceAmount.Value = Convert.ToDecimal(invoice.InvoiceValue); // Create the receivables invoice object receivablesInvoice = new ReceivablesInvoice(); // Populate the receivables invoice object's required properties receivablesInvoice.Key = invoiceKey; receivablesInvoice.CustomerKey = customerKey; receivablesInvoice.SalesAmount = invoiceAmount; // Get the create policy for receivables invoices receivablesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateReceivablesInvoice", context); // Create the receivables invoice wsDynamicsGP.CreateReceivablesInvoice(receivablesInvoice, context, receivablesInvoiceCreatePolicy);
I've seen the following post: https://community.dynamics.com/gp/b/dynamicsthoughts/archive/2014/08/08/how-to-solve-the-error-insufficient-authorization-to-perform-this-action-in-web-services-for-microsoft-dynamics-gp
but I don't see GPWebServicesAppPool in the list of application pools in IIS and I also can't find the web.config file referred to in that post.
*This post is locked for comments
Please ignore this question. When testing this I had the customer number set incorrectly to a non-existent customer which I think explains the error. After correcting that, the code above does actually work, which is nice.
Stay up to date on forum activity by subscribing. You can also customize your in-app and email Notification settings across all subscriptions.
André Arnaud de Cal... 290,900 Super User 2024 Season 2
Martin Dráb 229,275 Most Valuable Professional
nmaenpaa 101,156