Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用自定义应用程序池标识,WCF速度降低3倍_C#_Wcf_Performance_Iis 7 - Fatal编程技术网

C# 使用自定义应用程序池标识,WCF速度降低3倍

C# 使用自定义应用程序池标识,WCF速度降低3倍,c#,wcf,performance,iis-7,C#,Wcf,Performance,Iis 7,我在IIS7.5中托管了一个WCF应用程序,其中包含HTTPS、TCP和命名管道绑定 目前正在开发新版本的webservice,试图提高性能,我正在同一台服务器上使用客户端(VS控制台客户端)和服务器(IIS托管)测试它,但发现了一些奇怪的情况: 当对返回简单字符串的方法执行100-1000次调用的测试时,内置帐户的性能要比自定义ApplicationPool identity(域用户)快约3倍 我需要AppPool身份作为域管理员,因为服务需要做的事情 有谁能解释一下吗?似乎我已经找到了“问题

我在IIS7.5中托管了一个WCF应用程序,其中包含HTTPS、TCP和命名管道绑定

目前正在开发新版本的webservice,试图提高性能,我正在同一台服务器上使用客户端(VS控制台客户端)和服务器(IIS托管)测试它,但发现了一些奇怪的情况: 当对返回简单字符串的方法执行100-1000次调用的测试时,内置帐户的性能要比自定义ApplicationPool identity(域用户)快约3倍

我需要AppPool身份作为域管理员,因为服务需要做的事情


有谁能解释一下吗?

似乎我已经找到了“问题”,尽管我不太明白

正如我提到的,我使用了VS控制台客户端,即在VisualStudio中调试。在使用process monitor进行了一些分析之后,在有和没有内置AppPool用户的情况下运行,我看到VisualStudio做了一些很时髦的事情。 在域管理员下运行AppPool时,VS在另一个用户下生成了一个额外的.vshost.exe进程(无法看到,因为只看到了SID,我没有费心查找),该用户在网络负载下猛增

我构建了console项目,并在VS之外运行了可执行文件,看,AppPool用户之间没有明显的区别,速度比VS快很多倍。 不知道为什么会这样


我的结论是“如果有疑问,请运行Process Monitor!”我不应该如此依赖visual studio调试器进行性能测试。

可能与IIS加载用户配置文件有关?内置帐户大概不会加载漫游配置文件,而域帐户可能会加载漫游配置文件。虽然可以将服务设计为模拟其调用者(可能是域管理员)而不必一直以域管理员的身份运行吗?我们测试了加载用户配置文件true/false,但没有体验到任何显著的性能差异。模拟是一种可能性,但我们希望找到解决方案,而不是通过更改应用程序逻辑来绕过它。不过我会测试一下的!我认为您最好的选择可能是尝试分析服务执行情况,并比较两个帐户的结果以缩小范围。恐怕我以前没做过这件事,所以我不能推荐一个好的方法。你说得对。请看下面我的答案,了解它所显示的内容。Wireshark帮不了什么忙,但process monitor帮了不少忙。哈!奇怪的我很好奇SID现在决定做什么:)