我有一个web应用程序作为各种内部服务的网关。这些服务通过使用在启动时实例化的单个HttpClient实例(即Startup.cs)来使用
经过一段时间后,某些东西会导致我们的HttpClient停止访问我们的API,并且对于使用该客户端的每个调用,都会立即失败,并出现HTTP502错误。(请注意,我仍然可以使用其他方式点击我们的API,例如邮递员)
还要注意的是,这一切都被部署到Azure中的各种AppServices中。
有什么想法会以这种方式破坏HttpClient吗?
谢谢,-Tim
发布于 2018-05-05 06:01:39
当您位于代理服务器之后时,通常会出现此错误。如果您正在使用代理,则可能需要再次验证http客户端。另一种可能是在单例实例出现错误时重新生成它,例如,如果您的实现如下所示,则生成Singleton.killInstance();:
public class Singleton
{
private static Singleton instance;
private Singleton() {}
public static Singleton instance
{
get
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}
public static void Singleton killInstance()
{
instance == null
}
}发布于 2018-05-05 21:12:51
无论错误是什么,httpclient请求都会导致web服务器崩溃。要对其进行调查,您需要转到AppService的事件查看器。
以下是启动事件查看器的步骤:
请转到您网站的Kudu管理站点(即https://{sitename}.scm.azurewebsites.net
https://stackoverflow.com/questions/50180928
复制相似问题