我已经部署了一个azure WCF托管服务。我创建了一个服务和一个服务合同。如果我将其称为以下内容,一切正常:
http://myexampleservice.cloudapp.net/TestSertvice.svc/Test1
现在,我们要捕获所有无效请求,这些请求没有正确的服务名称或正确的操作名称。例如,以下表格的所有请求:
http://myexampleservice.cloudapp.net/TestSertvice12.svc/Test1
有没有办法做到这一点?
如果我在无效请求上面调用,那么服务会将响应状态返回为404.如果天花板流量管理器收到太多此类请求,是否有可能降级该服务?
-Manish
答案 0 :(得分:0)
这实际上很容易做到。首先,您需要捕获在您的实例上发生的404请求:
<customErrors mode="On" >
<error statusCode="404" redirect="~/Errors/Error404.aspx" />
</customErrors>
每次发生404错误时,用户/消费者都将被重定向到Error404.aspx,您可以将此事件添加到本地计数器(文件或静态变量)或共享计数器(如果您有多个实例)(SQL Azure,表存储,...)。
查看配置流量管理器时的选项:
您可以设置监控端点。这将指向不同的页面(如/Status/CanBeUsed.aspx)。如果该页面决定不应使用部署,则该页面应返回不同于200的HTTP状态代码(即:如果您的本地/共享计数器包含太多404错误)。流量管理器将监控此页面,在3个请求失败后,它将故障转移到其他部署。