识别ASP.NET Web服务参考

时间:2020-03-05 18:47:52  来源:igfitidea点击:

在我的日常工作中,我们有负载均衡的Web服务器,该服务器通过Web服务(以及最近的WCF)与负载均衡的应用服务器通信。在任何给定时间,我们都有4-6个不同的团队,它们可以添加新的网站或者服务或者使用现有的服务。我们可能有大约20-30个不同的Web应用程序和相应的服务。

不幸的是,由于优先级,组织结构,项目时间表,财务状况等方面的竞争使我们无法对此进行集中控制,因此情况相当混乱。我们有多种可重用的服务,但是有一系列特定于前端的服务。

理想情况下,我们可以更好地控制这种情况,并且我们正在设法控制这种情况,但这需要一段时间。我们要做的一件事是找到更多有关网站和应用服务器之间所有相互关系的信息。

我已经使用Reflector在程序集之间找到依赖关系,但是希望能够看到服务之间的流量模式。

尝试映射Web服务关系有哪些选择?在大多数情况下,我们主要讨论内部服务(从Web到应用程序,从应用程序到应用程序,从批处理到应用程序等)。从我的头顶上,我可以想到两种方法来解决它:

  • 分析程序集中的任何Web参考。这里的缺点是,并非所有内容都是Web参考,并且我不确定WCF连接的列出方式。但是,这至少是找到80%的连接的开始。有人知道可以进行这种分析的任何工具吗?就像我说的那样,我已经将Reflector用于程序集引用,但是找不到用于Web引用的任何内容。
  • 可能会利用IIS并被动地监视传入和传出的流量,并以某种方式找出被调用的内容以及从何处来。我们正在寻找可能会有所帮助的企业工具,但是要实施这些工具还需要一段时间(而且成本很高)。但是,有没有什么可以快速,廉价地帮助呢?特别是一种工具(AmberPoint)可以利用服务器上的IIS并监视入站和出站流量,添加一些特殊信息并开始构建流量图。非常好,但是要打包。

我知道,我知道,首先我们是怎么陷入这个烂摊子的?打我,只是想帮助我们控制它并摆脱它。

谢谢,
马特

解决方案

回答

最简单的方法是查看日志,但是如果其中不包含引荐来源网址,则我们可能还想监视从网络到应用服务器的情况。我们可以使用Wireshark或者Microsoft Network Monitor之类的工具查看此流量。

我宽松地使用的另一个"解决方案"是将特定的Web服务器绑定到应用程序服务器,然后运行捆绑包,查看它在应用程序服务器上的作用。我们可能可以在测试环境中执行此操作,以了解对站点用户的影响。

回答

我们需要一个服务注册中心(UDDI ??)...如果我们有一种方法可以对这些服务及其使用者进行分类,则可以使依赖发现的这项工作变得容易得多。但是,这不是一个简单的解决方案。建立目录需要时间和文档。

我认为最快的解决方案是查询IIS日志并查找源于我们自己的服务器的URL。我们至少可以跟踪使用者来自哪台服务器。

另外,如果我们已经拥有某种身份验证机制,则可以基于登录跟踪谁在使用特定服务。

我们对AmberPoint的看法是正确的。还有其他工具可以对服务流量进行分类,并提供显示服务状况的报告。我相信,Systinet,SOA软件和Actional也具有与Amberpoint类似的产品,但Amberpoint具有免费版本。