asp.net - 谁在调用我的 WebService?

标签 asp.net logging web-services

我有一个位于内部服务器上的 Web 服务。可以从我们网络上的任何网站调用它。

越来越多的开发人员开始使用它。目前大概有20多个页面使用该服务,并且这个数字还在快速增长。我可以预见一年后,有人会询问哪些页面正在使用此服务以及使用哪些方法。

我想记录请求传入时使用我的网络服务的页面的 URL。 知道他们正在调用的方法也很好。我需要以不影响客户端网站的方式做一些事情。我的第一个想法是我可以在 global.asax 中编写一些代码。

我已向 Application_BeginRequest 添加了一些代码来记录请求对象详细信息,但似乎没有任何有关请求 url 的信息。

我错过了什么?我应该看不同的物体吗?

谢谢。

最佳答案

如果不干扰现有用户,这将会很困难。 httpContect.Current.RequestUrl 将仅返回用于调用 Web 服务的 URL,而不是哪个网页调用它。

在不破坏现有应用程序并迫使开发人员更改它们的情况下,您可以做的最接近的事情是获取 HttpContext.Current.Request.UserHostAddress,这样您至少可以获得调用您的服务的计算机的 IP。

除此之外,您可能需要考虑向“CallingApp”函数添加一个参数,然后将其记录在代码中。一旦我们重新意识到我们需要知道哪些应用程序正在调用我们的服务,这几乎就是我们所做的。实际上,我们有一个应用程序监控服务,它为我们开发的每个新应用程序使用 GUID,并将该 GUID 传递给任何 Web 服务。这是额外的工作,但对我们来说至关重要,因为它使我们能够知道当我们需要执行更新或关闭应用程序服务器进行维护时哪些应用程序将受到影响。

编辑 - 添加

顺便说一句,当我们意识到需要跟踪这一点时,我们已经使用网络服务大约一年了。当遇到同样的问题时,我们创建了一组新的 Web 服务,并在所有新服务中包含了调用应用程序的额外字段,然后慢慢返回并更改了旧程序以指向新服务。

回想起来,我们希望我们事先就知道需要这样做,因为这会带来很多额外的工作。我猜如果您确实想确切地知道谁在调用您的服务,您会遇到类似的情况。

关于asp.net - 谁在调用我的 WebService?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1791275/

相关文章:

c# - 如何从 LiteralControl 获取 href?

java - logback 中的 MaxBackupIndex

asp.net - 您如何处理 JavaScript 对象中的 ASP.NET 服务器回调?

C# 使用 XSD 架构作为表单的元数据

c# - 将图像文件保存到sql Server并将字节数组转换为图像

java - 电子邮件日志文件,由 Java WebLogic 应用程序服务器生成

java - 以编程方式创建 Log4j 2.x FileAppender

objective-c - 在 Objective C 中发布到 Web 服务 API?

java - 内部异常 : java. sql.SQLException:未选择数据库

javascript - 使用 JavaScript 的十进制验证未按预期工作