当我在主插槽上运行HTTP Triggered功能应用程序时,我收到以下错误消息:
Status: 502 Bad Gateway
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>502 - Web server received an invalid response while acting as a gateway or proxy server.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>502 - Web server received an invalid response while acting as a gateway or proxy server.</h2>
<h3>There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.</h3>
</fieldset></div>
</div>
</body>
</html>
&#13;
但是当我尝试使用相同的代码创建一个新的插槽和功能应用程序时,它可以正常工作而不会出现上述错误。我们的主要插槽配置似乎存在问题,但我无法找到任何资源来指出它。
还有其他人遇到过这个问题吗?你怎么修好它的?
答案 0 :(得分:1)
当我将MongoDB中的对象(通过Mongoose方法:Model.find())直接发送到响应时,我遇到了这个问题。
./gradlew -PspringProfile=test build
我必须将此正文对象更改为:
Claim.find()
.then(claims => {
context.res = {
status: 200,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
},
body: claims
};
context.done();
})
答案 1 :(得分:0)
我在不同的情况下多次看到502错误 大多数情况下,这是我的编程错误/配置问题 但今天花了很多时间才找到这个问题,所以在这里分享。
问题#1
s3 = new AWS.S3();
AWS.config.loadFromPath(dirName1 + '\\aws-config.json');
s3.listObjectsV2(..);
虽然错误在第1行,但问题发生在第3行
解决方案是:
AWS.config.loadFromPath(dirName1 + '\\aws-config.json');
s3 = new AWS.S3();
s3.listObjectsV2(..);
也就是说,在加载aws配置之后,我们需要创建s3新的实例变量。
问题#2
如此处所示,https://stackoverflow.com/a/39240447/984471是关于将文件写入不可访问的目录,而您可以写入D:\ local \ Temp,我们不能写其他目录,如当前目录或D: \
不幸的是,在上面的示例和我的其他实例中,Azure函数存在而没有任何日志功能控制台,因此需要进行大量调试。
答案 2 :(得分:0)
我也遇到了同样的错误。我在事件处理函数的末尾写了“context.done(null,output)”,它工作正常。
答案 3 :(得分:0)
就我而言,这是缺少 WEBSITE_NODE_DEFAULT_VERSION
应用程序设置(Node.js Windows 函数应用程序,高级版和消费版托管计划中均出现错误)。
如果您在 Azure 门户中创建函数应用,应用设置会自动设置,但如果您使用 IaC 工具(在我的情况下为 Terraform),则需要明确设置它。
"WEBSITE_NODE_DEFAULT_VERSION" = "~14"
答案 4 :(得分:0)
我遇到了同样的错误,我只是忘记添加“内容类型”标题“应用程序/json”。添加标题后它对我来说很好