标识ASP.NET Web服务引用

时间:2008-09-04 19:58:28

标签: web-services iis reflection esb

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

不幸的是,由于竞争优先级,组织结构,项目时间表,财务桶等等,我们没有对此进行集中控制,这是一个混乱。我们有各种各样的服务可以重复使用,但是一堆特定于前端的服务。

理想情况下,我们可以更好地控制这种情况,我们正试图控制它,但这需要一段时间。我们想要做的一件事是了解更多关于网站和应用服务器之间的所有相互关系的信息。

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

尝试映射Web服务关系有哪些选项?在大多数情况下,我们主要讨论内部服务(网络到应用程序,应用程序到应用程序,批量到应用程序等)。在我的头脑中,我可以想到两种方法:

  • 分析任何Web引用的程序集。这里的缺点是并非所有内容都是Web引用,我不确定如何列出WCF连接。但是,这至少是找到80%连接的开始。有谁知道任何可以进行分析的工具?就像我说的那样,我已经将Reflector用于程序集引用,但找不到任何Web引用。
  • 可能会进入IIS并被动地监控进出的流量,并以某种方式确定所调用的内容以及来自何处。我们正在寻找可以提供帮助的企业工具,但在实施之前需要一段时间(而且成本很高)。但那里有什么东西可以快速便宜地帮助吗?特别是一个工具(AmberPoint)可以在服务器上访问IIS并监控入站和出站流量,添加一些特殊的酱并开始构建流量图。非常好,但需要花费一大笔钱。

我知道,我知道,你到底是怎么回事这个烂摊子的?打败我,试图帮助我们控制它并摆脱它。

谢谢, 马特

2 个答案:

答案 0 :(得分:2)

最简单的方法是查看日志,但如果不包括引荐来源,那么您可能还希望监控从Web到应用服务器的内容。您可以使用Wireshark或Microsoft Network Monitor等工具查看此流量。

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

答案 1 :(得分:0)

您需要一个服务注册表(UDDI ??)...如果您有办法对这些服务及其使用者进行编目,那么这将使依赖性发现的工作变得更加容易。但这不是一个简单的解决方案。获取目录需要时间和文档。

我认为最快的解决方案是查询IIS日志并查找源自您自己的服务器的源URL。您至少可以找到您的消费者来自哪些服务器。

此外,如果您已经拥有某种身份验证机制,则可以根据登录情况跟踪谁正在使用特定服务。

你对AmberPoint是正确的。还有其他工具可以对服务流量进行编目,并提供显示服务发生情况的报告。 Systinet,SOA Software和Actional也有类似于Amberpoint的产品,但我相信Amberpoint有一个免费软件版本。