2

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 型) で
4

2 に答える 2

0

以下を試してください

        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));
于 2014-08-05T06:09:49.407 に答える