WCF 调用 WCF - 滞后



正在尝试控制台应用托管的 WCF 服务。一切都很好,但时间...

控制台应用中的 WCF 以代码开头:

    ServiceHost host = new ServiceHost(typeof(DeviceService));
    public void StartServiceHost()
    {
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine(DateTime.Now.ToString() + " ServiceHost is opened");
        host.Open();
        Console.ForegroundColor = ConsoleColor.Green;
    }

在其他 WCF 服务(用于将数据发送到 SL App)中,我通过代码调用此服务:

DeviceCacheService.DeviceServiceClient client = new DeviceCacheService.DeviceServiceClient();
List<Telemetry.Models.Device.DeviceModel> models = client.DEVICE_Get().ToList();

当最后一个代码创建对第一个服务的请求时,下一行将在 3-4 秒后处理。我尝试设置断点 - 在调用服务方法和启动 ConsoleAppWCF 端代码之间处理了 2-3 秒。

我做错了什么?

请从您的应用程序(服务器和 SL)添加任何绑定信息。

也就是说,心理调试指示您正在使用使用 Windows 身份验证的安全绑定。第二个猜测是,您没有运行连接到域的这台计算机,因此调用需要一点时间来获取凭据以确定 AD 控制器不存在。

即使计算机未连接到域,WCF 也会调用尝试获取 Windows 凭据的函数,就好像 MACHINEName\UserName 实际上具有 MACHINEName 一样。一旦失败,代码就会将 MACHINEName 视为计算机名称。3-4 秒是此故障转移的常见时间。

当然,我可能离得很远,但我想我会猜一猜。

最新更新