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 です。同じマシンの NetworkCredential で指定された同じアカウントを使用して実行されているコンソール アプリケーションを使用して、AIF に接続しようとしています。
アプリケーションが Web サービスに接続すると、次のエラーが発生します。
System.ServiceModel.FaultException: Microsoft Dynamics AX にログオンできません.. エラーの詳細: Microsoft Dynamics AX にログオンできません.. 詳細については、Web サーバー イベント ビューアーを確認するか、管理者に問い合わせてください。 サーバー スタック トレース: System.ServiceModel.Channels.ServiceChannel.HandleReply (ProxyOperationRuntime 操作、ProxyRpc & rpc) で System.ServiceModel.Channels.ServiceChannel.Call (文字列アクション、ブール値一方向、ProxyOperationRuntime 操作、オブジェクト [] イン、オブジェクト [] アウト、TimeSpan タイムアウト) で System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall、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 型) で