C# 可以在web api中硬编码响应吗?

C# 可以在web api中硬编码响应吗?,c#,asp.net-web-api,attributerouting,C#,Asp.net Web Api,Attributerouting,我需要每5分钟调用一个web服务,以告知系统是否关闭。问题是,如果服务器关闭,系统不会调用控制器。我们正在使用属性路由。如果服务器停机,我需要创建一个硬编码响应,但由于它没有发送到控制器,因此我无法硬编码响应 即使出现异常,如何调用控制器。A.如果系统停机,则无法生成响应。但这是一件好事,否则你将无法检测到它是否下降 B.如果出现异常,客户端仍将收到一个响应(例如500),该响应告诉客户端服务器已启动(但存在问题) C.在控制器层面,我认为这是您能做的最好的: [Route("/alive")]

我需要每5分钟调用一个web服务,以告知系统是否关闭。问题是,如果服务器关闭,系统不会调用控制器。我们正在使用属性路由。如果服务器停机,我需要创建一个硬编码响应,但由于它没有发送到控制器,因此我无法硬编码响应


即使出现异常,如何调用控制器。

A.如果系统停机,则无法生成响应。但这是一件好事,否则你将无法检测到它是否下降

B.如果出现异常,客户端仍将收到一个响应(例如500),该响应告诉客户端服务器已启动(但存在问题)

C.在控制器层面,我认为这是您能做的最好的:

[Route("/alive")]
[AllowAnonymous]
[HttpGet]
public string Alive()
{
   return "I'm alive and loving it!";
}
D.有关设置错误的自定义错误响应,请参阅或的异常筛选器:


正如您现在可能已经明白的那样,如果服务器停机,您不能依靠服务器来告诉您它是否停机。相反,请调用您的web服务,如果它没有响应,它将关闭。@RobertHarvey返回了一个异常。但是我想返回一个硬编码的json响应,而不是返回响应。当我在控制器上使用属性路由时,是否可以这样做?在实际服务前面使用一个单独的代理,将请求转发给它,但在实际服务没有响应时返回所需的错误响应?也就是说,这是一件非常奇怪的事情,编写良好的服务客户端应该能够自己检测服务是否停机,而不需要特定的响应如果服务器停机,你到底要如何从它那里返回任何东西?@AndreiDragotoniu是的,但规范说,当它无法联系服务器时,我需要返回硬编码的json响应。它无法转到控制器,因为它无法找到路由,因为服务器已关闭。你必须定义“找不到路由”的含义。如果路由定义不起作用,那么声明服务器处于活动状态有什么意义?或者这真的是关于处理服务器错误的javascript/httpclient问题吗?
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Filters.Add(new ProductStore.NotImplExceptionFilterAttribute());

        // Other configuration code...
    }
}