正在尝试控制台应用程序托管的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秒。
我做错了什么?
发布于 2012-12-07 04:54:46
请添加来自您的应用程序(服务器和SL)的任何绑定信息。
也就是说,心理调试表明您使用的是使用Windows身份验证的安全绑定。第二个猜测是,您没有运行连接到域的这台计算机,因此调用需要一点时间才能获得凭据,以确定AD控制器不存在。
即使机器没有连接到域,WCF也会调用函数来尝试获取Windows凭据,就好像MACHINEName\UserName的MACHINEName实际上是一个域一样。一旦失败,代码就会将MACHINEName作为机器名处理。此故障切换通常为3-4秒。
当然,我可能走错了路,但我想我应该猜一猜。
https://stackoverflow.com/questions/13751569
复制相似问题