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.