Использование веб-сервисов AIF для подключения к Microsoft Dynamics AX 2009 - PullRequest
1 голос
/ 15 июля 2011

Я использую веб-сервисы 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: You cannot log on to Microsoft Dynamics AX.. Error details: Unable to log on to Microsoft Dynamics AX.. Check the Web server event viewer for more information, or contact your Administrator.

Server stack trace: 
   at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

Ответы [ 2 ]

0 голосов
/ 05 августа 2014

Попробуйте следующее

        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));
0 голосов
/ 21 июля 2011

Вы не можете войти в Microsoft Dynamics AX.Проверьте программу просмотра событий веб-сервера для получения дополнительной информации или обратитесь к администратору.

Может быть, вы не были созданы как пользователь AX?

Также проверьте Администрирование \ Настройка \ Безопасность \ Учетные записи системных служб, особенно «Прокси-сервер Business Connect».

Если все не удается, проверьте журналы своего веб-сервера или обратитесь к системному администратору :-)

...