2012-12-13 79 views
1

我部署了一个Azure WCF托管服务。我创建了一个服务和一个服务合同。验证Azure托管服务的端点

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

现在,我们要捕获所有无效的请求,不具备正确的服务名称或正确操作名称之一:如果我下面把它的一切工作正常。例如下面的表格的所有请求:

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

有没有办法做到这一点?

如果我在无效请求上面调用,则服务返回响应状态为404.如果服务器获取太多这样的请求,那么azure流量管理器是否有可能降级服务?

-Manish

+0

为了澄清,我们希望在服务器端捕获所有具有无效端点的请求。我们有许多客户使用的集中服务,所以我们不能强制客户验证端点并拨打电话。 –

回答

0

这实际上很容易做到。所以,首先你需要捕捉发生在您的实例(一个或多个)404个请求:

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

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

在配置流量管理器时,你有选择请看:

enter image description here

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

+0

谢谢Sandrino,这就是我一直在寻找的东西。 –