Использование веб-сервисов AIF для подключения к Microsoft Dynamics AX 2009
Я использую веб-сервисы AIF для подключения к Microsoft Dynamics AX 2009. Прокси-серверы создаются для службы в VS2010, но когда я хочу подключиться к службе с помощью класса "Генерировать клиент", кажется, что я не прошел проверку подлинности в системе.
Я даже попытался добавить пользователя домена / пароль и использовать проверку подлинности Windows, например так:
var binding = new BasicHttpBinding();
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
var address = new EndpointAddress(new Uri("http://dynamicsserver/salesorderservice.svc"));
var client = new SalesOrderServiceClient(binding, address);
client.ClientCredentials.Windows.ClientCredential = new NetworkCredential("admin", "pass", "domain);
Привязка по умолчанию - HttpBinding, и я пытаюсь подключиться к AIF с помощью консольного приложения, работающего с той же учетной записью, которая указана в NetworkCredential на том же компьютере.
Я получаю следующую ошибку при подключении приложения к веб-сервису:
System.ServiceModel.FaultException: вы не можете войти в Microsoft Dynamics AX. Сведения об ошибке: невозможно войти в Microsoft Dynamics AX. Проверьте программу просмотра событий веб-сервера для получения дополнительной информации или обратитесь к администратору. Трассировка стека сервера: в System.ServiceModel.Channels.ServiceChannel.HandleReply(операция ProxyOperationRuntime, ProxyRpc& rpc) в System.ServiceModel.Channels.ServiceChannel.Call(действие String, логический односторонний режим, операция ProxyOperationRuntime, Object[] ins, Object[] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(метод IMethodCallMessageCall, операция ProxyOperationRuntime) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke(сообщение IMessage) Исключение переброшено в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, тип Int32)
2 ответа
Попробуйте следующее
AX ax = new AX();//where AX=YourWebServiceClient
ax.ChannelFactory.Credentials.UserName.UserName = @"domain\username";
ax.ChannelFactory.Credentials.UserName.Password = @"password";
CallContext context = new CallContext();
context.Company = "YourCompany";
Console.WriteLine(ax.YourServiceFunction(context));
Вы не можете войти в Microsoft Dynamics AX. Проверьте программу просмотра событий веб-сервера для получения дополнительной информации или обратитесь к администратору.
Может быть, вы не были созданы как пользователь AX?
Также проверьте Администрирование \ Настройка \ Безопасность \ Системные учетные записи, особенно "Прокси бизнес-коннектора".
Если все не удается, проверьте журналы вашего веб-сервера или обратитесь к системному администратору:-)