构造函数中的结束响应



在调用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

我建议以下内容作为解决方案。

  • 创建自定义服务行为
  • 在该服务中,您可以按照自己的方式检查特定的应用程序设置
  • 如果您发现一些值指示维护中的服务,则抛出异常

最新更新