【问题标题】:find which server in a web farm the web method got executed?查找网络方法执行的网络场中的哪个服务器?
【发布时间】:2011-06-30 06:13:23
【问题描述】:

这个问题是以下问题的结果:determining which server (in a web farm) the asp.net ajax request came from?

问题是我们通常使用自动生成的代理类来与 web 方法(可能是 asmx/wcf 服务的一部分)进行通信。当我们收到来自 Web 服务服务器的响应时,我们如何知道它是从哪个服务器处理的?

我们收到来自正在执行的服务器端代码的响应(大部分)。当它是一个脚本服务(可以通过javascript调用)时,它完全是另一种情况。

Web 服务返回后我们如何读取响应标头?

我是否必须构建自己的代理类来解决这个问题?

【问题讨论】:

  • 为什么需要知道场中的哪个服务器正在响应请求?当然,农场的意义在于服务器是可以互换的?
  • 网络农场的重点是(除其他外)透明度 - 客户端不知道它的存在。依赖于执行请求的真实服务器的知识在客户端构建任何逻辑都是错误的架构。
  • 我同意 Damien 和 Ladislav。人们抱怨该网站在高峰时段运行缓慢。在代码中,我们在关键点(如 db 调用或 Web 服务调用)之前和之后放置了 Trace 语句。我们还将 web.config 中 trace 元素的 localOnly 属性设置为 true。这意味着我们只能登录到为呼叫提供服务的实际服务器,并找出使网站变慢的原因。这就是我们必须如何进行调查。欢迎任何其他建议。
  • 你有没有办法完成这件事。我也有类似的问题。

标签: asp.net wcf web-services asmx


【解决方案1】:

一种方式。它不是最好的方法,但它会一直持续到有新事物出现。如果您有 fiddler/burp 之类的工具,则可以检查响应标头。因此,我们必须配置 IIS 以适当地设置响应标头。

默认情况下,它们被配置为输出 X-ASP.NET 之类的内容...一个好主意是将服务器名称添加到其中...

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多