我已经协助了一个有几千个部署的应用程序。此应用程序是.NET 2 Winforms应用程序。
有一些功能要求应用程序“回家”到我们为更新产品信息而编写的一些自定义Web服务。
这几年来一直很好。我们偶尔会得到的支持电话会与防火墙相关,我们会通过为应用程序添加例外来解决这个问题。
今年我们正在接到一些电话,我们的应用程序无法连接到我们的网络服务,但确实不是与防火墙相关的问题。
正在进行域名解析,并且可以将Web Service的页面加载到浏览器中。然而,我们的APPLICATION完全无法连接到Web服务。
对于我的生活,我不知道如何解决这个问题。
任何人都可以就如何解决和调试此问题提供一些建议。欢迎任何指导。我能够向其中一些客户进行副驾驶,以远程访问他们的机器。
赛斯
答案 0 :(得分:1)
这听起来像一个泡菜,正如其他人提到的,你总是可以创建一个诊断应用程序,看看是什么类型的返回/异常被抛出。这里有一些想法......
让我们从客户端进行检查,您只需在客户端计算机上使用命令窗口并使用netstat -a
命令查看进出机器的所有TCP / UDP连接,在那里查找您的Web服务主机,理想情况下,当应用程序尝试呼叫回家时,运行此命令。(您可以手动触发这些“电话回家”呼叫吗?)
另一个更复杂的方法是Wireshark,在那里设置一个捕获过滤器,只接收到后端服务器的流量,如果它不是SSL,你甚至可以看到SOAP和/或XML。穿过电线。(如果您正在连接,但信封/信息/格式存在问题,这会有所帮助)
另一种可能性是代理问题,但如果您使用默认设置,并且他们通过浏览器访问它,则不太可能。根据此应用程序的编码方式,您是否可以显示这些调用的代码?
答案 1 :(得分:0)
当你说它无法连接时,你的意思是它到达网络服务(通过IP /连接日志验证)但是无法检索页面,或者它从未到达网络服务?
如果它是可重复的,那么抛出一个只调用你的web服务的小测试应用程序,尽可能多地进行调试日志记录,然后从其中一个远程客户端运行它? (不知道该告诉你它是什么工作的......但这本身就可以表明一些东西。也许在另一个端口上进行测试。)
IE正在使用这些客户端网络中的代理并且您的服务不是吗?
答案 2 :(得分:0)
您是否可以构建一个小型测试应用程序,其中包含大量调试/日志记录信息,您可以获得运行该问题的客户端之一?如果您编写的测试应用程序以与实际应用程序相同的方式连接,则可以将每个步骤和异常记录到日志文件中,这可能有助于您了解正在发生的事情。您需要找到愿意与您合作的客户,但如果有几千个部署,那么应该有人愿意帮助您。
如果您发布正在打电话的家庭代码,我们可能会提出一些更具体的想法。