10 回答

TA贡献1911条经验 获得超7个赞
1 本机和远程用的是同一个wcf服务吗? 不是的话和账号可能有关
2 localhost访问wcf是否正常?
3 如果仍有问题,你可以使用VS的“分析、探查器”采样一下程序,看哪个函数在耗时

TA贡献1802条经验 获得超6个赞
本机模拟服务端和客户端时正常,服务端和客户端是双工的,服务端发出请求,客户端执行读取内存信息返回给服务端。绝大多数的都正常,只有 Server 2008 R2 SP1+64位操作系统的才会慢。我逐步写日志的,发现是在读内存的地方耗时的。
另外我还写了个单独获得内存的控制台程序,在那种机型上测试,只要280毫秒。

TA贡献1982条经验 获得超2个赞
@2012: 调用的是相同的函数,不同之处一个是直接调用获取内存信息的函数,一个是远程WCF调用那个执行获取内存信息的函数。系统的日志查看器里面是看不到任何警告或者报错的信息的。没有错误只是慢。

TA贡献1842条经验 获得超21个赞
单从64位操作系统和你的new ManagementClass("Win32_PhysicalMemory");来看,可以推断出问题是64位系统调用了32位的API造成的问题,正常情况下,64位系统应该调用64位的API,除非项目编译选项里强制指定该程序是32位运行的,默认的Any PC方式会在64位系统下,按照64位模式运行,所有.NET的方法全部调用64位的API。
你尝试将客户端项目强制运行在X86模式下面,估计就能好了。
- 10 回答
- 0 关注
- 631 浏览
添加回答
举报