iisnode 在处理请求时遇到错误。HRESULT:0x6d HTTP 状态:500 HTTP 子状态:1013

IT技术 javascript node.js reactjs azure express
2021-05-12 07:17:01

我正在开发一个前端使用 ReactJS 和后端使用 express 的 web 应用程序。我正在将我的应用程序部署到 azure。

为了测试我的请求是否通过,我编写了两个不同的 API 请求。

第一个很简单:

router.get('/test', (req, res) => {
  res.send('test was a success');
});

然后在前端,我有一个按钮,单击该按钮会发出请求,然后得到响应“测试成功”。这每次都有效。

第二个测试是:

router.post('/test-email', (req, res) => {
  let current_template = 'reset';
  readHTMLFile(__dirname + '/emails/' + current_template + '.html', function(err, html) {
    let htmlSend;
    let template = handlebars.compile(html);
    let = replacements = {
      name: req.body.name
    };
    htmlSend = template(replacements);
    let mailOptions = {
      from: 'email@email.com',
      to: 'someone@email.com',
      subject: 'Test Email',
      html: htmlSend
    };
    transporter.sendMail(mailOptions)
    .then(response => {
      res.send(response);
    })
    .catch(console.error);
   });
 });

然后,当我部署了应用程序时,我会调用这些测试中的每一个。第一个,就像我提到的那样总是成功。第二个应该发送非常简单的电子邮件在大多数情况下失败,并显示错误“iisnode 在处理请求时遇到错误。HRESULT: 0x6d HTTP status: 500 HTTP subStatus: 1013”。奇怪的是,电子邮件每隔一段时间就会发送一次,但这种情况很少发生。大多数情况下,在发送带有错误的响应之前,请求将花费整整两分钟。

我应该注意到,在 localhost 中进行开发时,这两个测试一直都在工作,没有任何问题,只有在生产(部署到 azure)时才会发生这种情况。

过去几天我一直在四处挖掘,但一无所获。任何帮助或指示将不胜感激。

1个回答

我发现了问题所在。我正在使用 gmail 发送我的测试电子邮件,默认情况下,如果 gmail 认为发出请求的应用程序不安全,它将阻止任何使用帐户的尝试。只需单击您第一次尝试时自动发送给您的链接,即可轻松解决此问题。不是很明显的是,当您进入生产模式时,它们会增加另一级安全性,在这种情况下,我认为这是一个验证码,虽然一旦您部署应用程序,您就可以在开发中发送电子邮件,但这不再变成这样。

无论如何,在深入研究之后,我找到了禁用验证码的选项,现在我的电子邮件发送正常!

链接到该选项https://accounts.google.com/b/0/DisplayUnlockCaptcha

希望这会帮助某人。