在调用Operation
之前,我想在WCF
中进行一些检查。
我的代码如下
public RESTService()
{
if (ConfigurationManager.AppSettings("BlockLogin") == "1")
{
HttpContext.Current.Response.Write("{""Status"" : ""Service under maintainance""}");
HttpContext.Current.Response.End()
}
}
我原以为它会结束请求,不会调用操作合约(在本例中为getTokenX(,但它确实调用了。如何使其停止调用操作合同?
我的URL类似
172.16.3.156:81/_RestAPI/RestService.svc/getTokenX
您还可以使用Global.asax文件来控制请求的有效性。
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Flag==true)
{
Response.End()
}
}
我不建议在wcf应用程序中使用httpcontext。在大多数情况下,它是为asp.net应用程序域设置的,其值为空
https://learn.microsoft.com/en-us/dotnet/framework/wcf/feature-details/wcf-services-and-aspnet
我建议以下内容作为解决方案。
- 创建自定义服务行为
- 在该服务中,您可以按照自己的方式检查特定的应用程序设置
- 如果您发现一些值指示维护中的服务,则抛出异常