【问题标题】:How to solve error HRESULT: 0x6d HTTP 500 substatus 1013 when Deployed in Azure with Node.js Express and IISnode?使用 Node.js Express 和 IISnode 在 Azure 中部署时如何解决错误 HRESULT: 0x6d HTTP 500 substatus 1013?
【发布时间】:2020-09-01 01:13:38
【问题描述】:

当我尝试从联系表单发帖时,我的应用程序中不断出现错误。这是踢球者,它在我的本地主机开发环境中工作(接收电子邮件)。当我将它从我的主机桌面部署到 vm Windows Server 时,它甚至可以接收电子邮件。但是当我将它部署在 Azure Windows Server 上时,它不起作用,我的 vm 服务器和 Azure 在 IIS 中都有相同的设置,并安装了 node.js 和 IISnode。 对整个 node.js/express 和 IISnode 开发来说有点新,如果能帮助它工作和解决,我们将不胜感激。

error screenshot.

web.config

<configuration>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
        </handlers>
        <!-- <httpErrors existingResponse="PassThrough"> -->
        <iisnode nodeProcessCommandLine="C:\Program Files\nodejs\node.exe" logDirectory="C:\inetpub\logs\abc\iisnode" loggingEnabled="true" />
        <modules runAllManagedModulesForAllRequests="false">
            <remove name="WebDAVModule"/>
        </modules>
        <rewrite>
            <rules>
                <rule name="abc_test">
                    <match url="api/*" />
                    <action type="Rewrite" url="server.js" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

server.js

const PORT = process.env.PORT || 3003`
const app = require('./app')
app.listen(PORT, function(){
     `console.log("Server Listening On Port: ", PORT);
})

app.js

const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));`
app.use(cors({origin: "*"}));
const generalRoutes = require('./api/route/general');
app.use('/'+'abc_backend/api/general/', generalRoutes);
module.exports = app;

general.js

const express = require('express');
const router = express.Router();
const gController = require('../controller/generalController');
router.post('/contacting', gController.sendingMail);
module.exports = router;

generalController.js

const express = require('express');
const bodyParser = require('body-parser');
const nodemailer = require('nodemailer');
const app = express();
const sendingMail = async(req, res) => {
 let user = req.body;
 let transporter = nodemailer.createTransport({
 host: "smtp.gmail.com",
 port: 465,
 secure: true, // true for 465, false for other ports
 auth: {
  user: "aasome.fakemailzz@gmail.com",
  pass: "somefakepass"
 }
});
let mailOptions = {
 from: "contact@somefakedomain.io",
 to: "fakename@somefakedomain.com",
 subject: "New Contact Message",
 html: <b>Name: </b> ${user.userName} <br>
 <b>Email: </b> ${user.email} <br>
 <b>Phone: </b> ${user.address.postalCode} <br>
 <b>Message: </b> ${user.address.city}
};
let info = await transporter.sendMail(mailOptions);
 res.send(info);
}
module.exports = {
 sendingMail
}

contacting.service.ts

export class ContactingService {
 public url:string;
 constructor(private _http: HttpClient) {
  this.url = environment.backendAPIurl + "/general/";
 }
 contactSubmit(userName: string, email: string, postalCode: string, city: string){
  const bodyData = {
   userName:userName,
   email: email,
   address:{
    postalCode:postalCode,
    city: city
   }
  }
  return this._http.post<any>(this.url +"contacting",bodyData);
 }
}

【问题讨论】:

  • 不要使用 iisnode,因为它已停止维护。如果可以,请切换到 Linux。如果必须使用 Windows,请为您的 NodeJS 应用程序使用 HttpPlatformHandler。
  • 尝试使用这样的代码结构:const apiAi = require("apiai"); module.exports = function(app, server) { const apiAiApp = apiAi(Constants.API_AI_ACCESS_TOKEN); //Now, do something with apiAiApp }

标签: node.js angular express iis iisnode


【解决方案1】:

解决了。在启用 IIS_USr 将日志写入 web.config 中的目录后,查看了错误日志。该错误表明它与 Google 身份验证有关,如果传入的请求服务器不安全/SSL,Google 将无法在生产服务器上工作。

还发现了一个提到相同概念的 stackoverflow 链接。 iisnode encountered an error when processing the request. HRESULT: 0x6d HTTP status: 500 HTTP subStatus: 1013

通过单击此链接并使用来自 nodemailer.createTransport({}) 的帐户登录以允许它解决。 https://accounts.google.com/b/0/DisplayUnlockCaptcha

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2022-12-19
    相关资源
    最近更新 更多