与Windows应用程序相比,WCF服务速度较慢

时间:2012-01-30 19:31:01

标签: c# .net wcf

我目前通过WCF服务公开程序的一些功能。但是,WCF服务执行与执行相同操作的应用程序相同的任务大约需要3倍的时间。

该函数在DLL中可用。我已经创建了一个WCF解决方案和一个应用程序解决方案来比较两者的速度。此测试中没有涉及其他代码/功能。

以下是(应用程序和WCF)使用的代码:

public String time(string file)
{
    DateTime start = DateTime.Now;
    FunctionCall(Params);
    return String.Format("Time: {0}", DateTime.Now - start);
}

WCF的配置文件是Visual Studio 2010默认生成的配置文件。

应用程序执行需要约3秒,WCF需要8秒。我知道WCF服务可能会有轻微的开销,所以我通过更改为Web服务进行了相同的测试,但结果是相同的。每次对WCF的调用都会给出相同的3x因子,它不仅是第一个因素。

与Windows应用程序相比,什么会导致WCF服务调用dll的方式有如此大的差异?

感谢。

修改

该服务在IIS 7.5上运行(Windows Server 2008 R2) 该函数仅解析文本文件。

问题不在于WCF如何处理请求,而在于它如何调用该函数。

客户端 - WCF通信

Client Request--> WCF : Fast (~25ms)
WCF call --> Function : Slow (~8s)
WCF Respond --> Client: Fast (~25ms)

Windows应用程序

Application -->Function : Medium(~3s)

为什么FunctionCall在调用它的WCF时会变慢?它是相同的DLL和相同的代码,不应该以类似的速度运行?

1 个答案:

答案 0 :(得分:0)

您应该添加一些有关您的wcf服务的信息。特别是关于InstanceContextMode - PerSession,PerCall或Single。如果您使用PerCall,那么这可能是您错过的秒数。