none
Webservice方法在客户端调用时,方法调用到发出网络请求这段时间间隔特别长,如何解决? RRS feed

  • 问题

  • Webservice方法,通过添加服务引用,生成客户端代码直接调用,在测试机处运行很快,但在客户那儿运行特别慢。通过使用测试程序发现是卡在webservice方法调用之后,发出网络请求之前,这会是什么原因导致的呢?想要查找具体原因的话可以从哪个方面查看?或用什么工具跟踪下?

    2018年6月21日 10:15

答案

全部回复

  • 用tcp trace看下网络情况,看发送与接收耗费了多少时间。

    2台通讯的电脑是否在同一个网段,可以不在同一个网段但耗费的时间要多一点。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年6月22日 0:27
  • 可能是调用前发生错误了。看看能不能把未捕获错误信息显示出来。或者检测下是否有代理
    2018年6月22日 1:21
  • 你好,

    可以使用Microsoft Network Monitor 或者Fiddler 来跟踪一下。

    https://www.microsoft.com/en-us/download/details.aspx?id=4865

    https://www.telerik.com/fiddler/web-app-performance-testing

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年6月22日 6:40
    版主
  • 您好,我用wireshark抓过包,抓到请求包后很快就有返回呢。这种现象就跟被hook类的进程阻塞了一样,不知道能用什么方法检测这类进程?
    2018年6月27日 6:09
  • 可能是调用前发生错误了。看看能不能把未捕获错误信息显示出来。或者检测下是否有代理

    您好,我写过如下代码测试过:

                    Webservices webserverClient = new Webservices();
                    MessageBox.Show("实例化远程服务!");
                    string ver = webserverClient .getCopyRightCode();
                    MessageBox.Show("Result:" + ver);

    中间没抛出任何异常,第一个MessageBox可以正常显示,速度也很快;然后我用wireshark抓网络包,很长一段时间才能抓到发出去的请求包,抓到后很快就能看到返回数据,第二个MessageBox也能正常显示。这个现象就跟被钩子钩住然后阻塞了一样或者是系统的某个模块儿长时间挂起导致的,但没法继续追踪,有什么好的办法或建议么?

    2018年6月27日 6:16
  • 你好,

    可以使用Microsoft Network Monitor 或者Fiddler 来跟踪一下。

    https://www.microsoft.com/en-us/download/details.aspx?id=4865

    https://www.telerik.com/fiddler/web-app-performance-testing

    Best regards,

    Zhanglong


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    您好,感谢您提供的工具,我用类似的工具wireshark,抓过数据包,应该不是网络原因引起的。就像进程被挂起一样,但不知道该如何继续跟踪。
    2018年6月27日 6:18
  • 你好,

    你的Webservices 里面有没有一些设置, 换一台机器看看是不是出现同样的问题。另外检查一下防火墙,看看有没有相关的限制。

    Best regards,

    Zhanglong 


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年6月28日 1:30
    版主
  • 你好,

    你的Webservices 里面有没有一些设置, 换一台机器看看是不是出现同样的问题。另外检查一下防火墙,看看有没有相关的限制。

    Best regards,

    Zhanglong 


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.


    在大部分客户电脑上都正常运行,就很少的一部分会遇到这个问题。如果防火墙做了限制的话,是不是就得不到webservice的请求结果了? 这种问题会不会跟安全插件或杀毒类的软件有关系?
    2018年6月29日 4:19
  • 尝试使用sfc /scannow 执行系统完整性修复可能会解决问题。
    2018年9月19日 4:09