【问题标题】:WCF call WCF - lagsWCF 调用 WCF - 滞后
【发布时间】:2012-12-06 20:02:52
【问题描述】:

试用控制台应用托管 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 秒。

我做错了什么?

【问题讨论】:

  • models 列表中有多少项?单品的尺寸是多少?

标签: c# wcf


【解决方案1】:

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

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

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

当然,我可能还差得远,但我想我会猜测一下。

【讨论】:

  • emmmm。 Shift+Enter 到下一行 你的意思是 app.config 绑定信息? 身份>
猜你喜欢
  • 1970-01-01
  • 2013-01-08
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多