1

我已经部署了一项 azure WCF 托管服务。我创建了一项服务和一份服务合同。如果我这样称呼它,一切都很好:

http://myexampleservice.cloudapp.net/TestSertvice.svc/Test1

现在,我们要捕获所有无效请求,这些请求要么没有正确的服务名称,要么没有正确的操作名称。例如以下形式的所有请求:

http://myexampleservice.cloudapp.net/TestSertvice12.svc/Test1

有没有办法做到这一点?

如果我调用上述无效请求,则服务返回响应状态为 404。如果收到太多此类请求,Azure 流量管理器是否有可能降低服务?

-马尼什

4

1 回答 1

0

这实际上很容易做到。因此,首先您需要捕获实例上发生的 404 请求:

<customErrors mode="On" >
       <error statusCode="404" redirect="~/Errors/Error404.aspx" />
</customErrors>   

每次发生 404 错误时,用户/消费者将被重定向到 Error404.aspx,您可以在其中将此事件添加到本地计数器(文件或静态变量)或共享计数器,如果您有多个实例(SQL Azure、表存储、 ...)。

查看配置流量管理器时的选项:

在此处输入图像描述

您可以设置监控端点。这将指向不同的页面(如 /Status/CanBeUsed.aspx)。如果该页面决定不应使用部署(即:如果您的本地/共享计数器包含太多 404 错误),则该页面应返回不同于 200 的 HTTP 状态代码。流量管理器将监视此页面,并在 3 次失败请求后将故障转移到不同的部署。

于 2012-12-13T08:19:56.430 回答