5

我在 Microsoft Dynamics AX 上有 WCF 服务 (AIF)

我可以毫无问题地使用.NET 4.6.1. 但是,当我使用运行相同的确切代码时,.NET Core我收到一条错误消息

调用 SSPI 失败目标主体名称不正确

在此处输入图像描述

关于这个错误有很多类似的问题,但解决方案并不能解决我的问题。

    var service = new MarketplaceGetItemsDataServiceClient();
    service.ClientCredentials.Windows.ClientCredential.UserName = "UserName";
    service.ClientCredentials.Windows.ClientCredential.Password = "P@ssword";
    service.ClientCredentials.Windows.ClientCredential.Domain = "Domain";
    var result = service.GetItemsDataAsync(new CallContext(), new SearchOptionsDC() { VendorId = "0000" }).Result;
4

2 回答 2

4

在 Connected Services\MyService\Rference.cs 文件中找到方法 GetEndpointAddress() 并使用您的身份帐户添加 UpnEndpointIdentity。

private static System.ServiceModel.EndpointAddress GetEndpointAddress(EndpointConfiguration endpointConfiguration)
    {
        if ((endpointConfiguration == EndpointConfiguration.NetTcpBinding_MyService))
        {
            return new System.ServiceModel.EndpointAddress(
                new System.Uri(@"net.tcp://190.188.1.2:8201/DynamicsAx/Services/MyService"), 
                new System.ServiceModel.UpnEndpointIdentity("host@host.com")
                );
        }
        throw new System.InvalidOperationException(string.Format("Could not find endpoint with name \'{0}\'.", endpointConfiguration));
    }
于 2019-09-02T15:30:55.510 回答
1

Change the DNS and replace it with the IP in the WCF tool.

于 2019-03-08T18:55:03.740 回答