我正在使用 AIF Web 服务连接到 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.. 检查 Web 服务器事件查看器以了解详细信息,或联系您的管理员。 服务器堆栈跟踪: 在System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime操作,ProxyRpc&rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作、布尔单向、ProxyOperationRuntime 操作、Object[] ins、Object[] outs、TimeSpan 超时) 在System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage方法调用,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类型)
您无法登录 Microsoft Dynamics AX。检查网络 服务器事件查看器了解更多信息,或联系您的 管理员。
也许您尚未创建为 AX 用户?
另请检查 Administration\Setup\Security\System 服务帐户,尤其是“业务连接器代理”。
如果全部失败,请检查您的网络服务器的日志或联系您的系统管理员:-)
尝试以下方法
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));