2012-01-30 17 views
0

我目前通过WCF服务公开了某些功能的程序。但是,WCF服务需要大约3倍的时间才能执行与完成相同任务的应用程序相同的任务。WCF服务与Windows应用程序相比较慢

该函数在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的调用都会给出相同的3倍因子,它不仅是第一个。

与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和相同的代码,不应该以相似的速度运行?

+2

你的问题不能确切地知道你的问题不知道DLL是什么以及你的WCF服务是如何托管的...... – Yahia 2012-01-30 19:33:09

+1

FunctionCall(Params)是做什么的? – 2012-01-30 19:37:32

+1

第一步将打开wcf诊断。 – rerun 2012-01-30 19:40:04

回答

0

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

相关问题