代码之家  ›  专栏  ›  技术社区  ›  MichaelT

.net远程处理每100秒停止一次

  •  1
  • MichaelT  · 技术社区  · 16 年前

    3 回复  |  直到 16 年前
        1
  •  3
  •   anonymous anonymous    16 年前

    100秒是一个已知的数字,因为它是.Net中webrequest的默认超时。

    我在过去看到PSI(MicrosoftProject中的Project Server接口)没有覆盖超时,因此应用了默认的100秒,并将在超过该时间后终止与它的任何通信。

    您是否有权访问所有代码,并且您是否确定已在适用的情况下设置了超时,以便在您不知情的情况下不会应用任何默认值?

        2
  •  0
  •   JaredPar    16 年前

    我以前从未见过这种行为,不幸的是,这是一个足够模糊的场景,我想你很难在这个董事会上找到遇到问题的人。它可能特定于您的应用程序。

    我认为你可以做一些调查来帮助你缩小问题的范围。

    1. 确定是客户机还是服务器实际暂停。如果您在确定这一点时遇到问题,请尝试安装数据包过滤器并监控流量,以查看谁发送了最后的数据。您可能无法读取二进制数据,但至少您会感觉到谁落后了。
    2. 一旦确定是客户机还是服务器导致了延迟,尝试在应用程序中进行调试,并在出现挂起的地方获取断点。这将为您提供足够的详细信息,以帮助跟踪问题。或者至少问一个更明确的问题。
        3
  •  0
  •   Charles Bretana    16 年前

    首先,确定您的系统是否在您预期的时间在代码中执行此“触发器”,或者是否在执行,并且远程处理服务器没有响应,这将非常有用。。。所以

    如果您可以在远程处理服务器中执行相同的操作,以记录服务器何时收到远程处理请求,这也会有所帮助。。。

    ... 哦,是的,只是一个想法,(我不知道您是如何编码的…)但是如果您在客户端中使用一个单独的线程来发出远程处理请求,并且通道正在该单独的线程上注册和注销,请确保您正在消除请求之间的冲突,因为您不能在同一台机器上同时注册同一端口两次。。。 (尽管如果这是问题所在,这可能会在您的客户中引发异常)