Azure 上的 Node Js RestFull API,返回 HTTP 错误 500.1001 - 内部服务器错误 [英] Node Js RestFull API on Azure,Returns HTTP Error 500.1001 - Internal Server Error

查看:11
本文介绍了Azure 上的 Node Js RestFull API,返回 HTTP 错误 500.1001 - 内部服务器错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用 Dropbox 在 Azure 上部署了我的 nodeJs RESTFull API 和 MySQL.在控制台上,我看到了应用程序开始列出并且数据库已连接的日志.因此行来自我使用 console.log() 记录的代码;当我请求我的 API/资源时,我从服务器收到 500 错误消息.我搜索了很多来解决这个问题,但无法解决这个问题.

我添加了带有 web.config 共享快照的应用设置

我正在使用来自 git hub 的 web.config 示例

最后一件事从 azure 记录

 <!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"><头><title>IIS 详细错误 - 500.1001 - 内部服务器错误</title><style type="text/css"><!--body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;}代码{margin:0;color:#006600;font-size:1.1em;font-weight:bold;}.config_source code{font-size:.8em;color:#000000;}pre{margin:0;font-size:1.4em;word-wrap:break-word;}ul,ol{边距:10px 0 10px 5px;}ul.first,ol.first{margin-top:5px;}fieldset{padding:0 15px 10px 15px;word-break:break-all;}.summary-container fieldset{padding-bottom:5px;margin-top:4px;}legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}图例{颜色:#333333;;边距:4px 0 8px -12px;_margin-top:0px;字体粗体:粗体;字体大小:1em;}a:link,a:visited{color:#007EFF;font-weight:bold;}一:悬停{文本装饰:无;}h1{font-size:2.4em;margin:0;color:#FFF;}h2{font-size:1.7em;margin:0;color:#CC0000;}h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;}h4{字体大小:1.2em;边距:10px 0 5px 0;}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif;颜色:#FFF;背景颜色:#5C87B2;}#content{margin:0 0 0 2%;位置:相对;}.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}.content-container p{margin:0 0 10px 0;}#details-left{width:35%;float:left;margin-right:2%;}#details-right{width:63%;float:left;overflow:hidden;}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;颜色:#FFFFFF;背景颜色:#5A7FA5;边框底部:1px 实心#C1CFDD;边框顶部:1px 实心#4A6C8E;字体粗细:正常;字体大小:1em;颜色:#FFF;文本对齐:右;}#server_version p{margin:5px 0;}表格{margin:4px 0 4px 0;width:100%;border:none;}td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:normal;border:none;}th{width:30%;text-align:right;padding-right:2%;font-weight:bold;}thead th{背景颜色:#ebebeb;宽度:25%;}#details-right th{宽度:20%;}表 tr.alt td,表 tr.alt th{}.highlight-code{color:#CC0000;font-weight:bold;font-style:italic;}.clear{clear:both;}.preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;}--></风格></头><身体><div id="内容"><div class="内容容器"><h3>HTTP 错误 500.1001 - 内部服务器错误</h3><h4>由于发生内部服务器错误,无法显示页面.</h4></div><div class="内容容器"><fieldset><h4>最可能的原因:</h4><ul><li>IIS收到请求;但是,在处理请求期间发生了内部错误.此错误的根本原因取决于处理请求的模块以及发生此错误时工作进程中发生的情况.</li><li>IIS 无法访问网站或应用程序的 web.config 文件.如果 NTFS 权限设置不正确,可能会发生这种情况.</li><li>IIS 无法处理网站或应用程序的配置.</li><li>经过身份验证的用户没有使用此 DLL 的权限.</li><li>请求被映射到托管处理程序,但未安装 .NET 可扩展性功能.</li></ul></字段集></div><div class="内容容器"><fieldset><h4>你可以尝试的事情:</h4><ul><li>确保 web.config 文件的 NTFS 权限正确,并允许访问 Web 服务器的计算机帐户.</li><li>检查事件日志以查看是否记录了任何其他信息.</li><li>验证 DLL 的权限.</li><li>如果请求映射到托管处理程序,请安装 .NET 可扩展性功能.</li><li>创建跟踪规则以跟踪此 HTTP 状态代码的失败请求.有关为失败的请求创建跟踪规则的详细信息,请单击 <a href="http://go.microsoft.com/fwlink/?LinkID=66439">此处</a>.</li></ul></字段集></div><div class="内容容器"><fieldset><h4>详细错误信息:</h4><div id="details-left"><表格边框="0" cellpadding="0" cellspacing="0"><tr class="alt"><th>模块</th><td>&nbsp;&nbsp;&nbsp;iisnode</td></tr><tr><th>通知</th><td>&nbsp;&nbsp;&nbsp;ExecuteRequestHandler</td></tr><tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;iisnode</td></tr><tr><th>错误代码</th><td>&nbsp;&nbsp;&nbsp;0x00000002</td></tr></表></div><div id="details-right"><表格边框="0" cellpadding="0" cellspacing="0"><tr class="alt"><th>请求的 URL</th><td>&nbsp;&nbsp;&nbsp;http://API:80/app.js</td></tr><tr><th>物理路径</th><td>&nbsp;&nbsp;&nbsp;D:homesitewwwrootapp.js</td></tr><tr class="alt"><th>登录方法</th><td>&nbsp;&nbsp;&nbsp;匿名</td></tr><tr><th>登录用户</th><td>&nbsp;&nbsp;&nbsp;匿名</td></tr></表><div class="clear"></div></div></字段集></div><div class="内容容器"><fieldset><h4>更多信息:</h4>此错误表示处理请求时出现问题.Web 服务器收到了请求,但在处理过程中发生了致命错误,导致 500 错误.<p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=500,1001,0x00000002,9200">查看更多信息 &raquo;</a></p><p>微软知识库文章:</p></字段集></div></div></身体></html>

解决方案

两件事:

  1. 您应该使用 process.env.PORT 来处理 Azure 应用服务中的命名管道端口.请参阅侦听 Microsoft Azure Nodejs 的附加端口.

  2. 如果 #1 没有解决您的问题,您需要启用 stdout 和 stderr 的日志记录以进行进一步的故障排除.请参阅 如何为 Azure 上的 Node.js Api 应用启用 BLOB 日志记录?

I have deployed my nodeJs RESTFull API with MySQL, on azure using Dropbox. On console i have seen logs that application started listing and database is connected. thus lines are from my code which i have logged using console.log(); When I request for my API/Resource, I get 500 ERROR massage from server. I searched a lot to solve this issue but am not able to solve this one.

I have added app setting with web.config sharing snapshot

i am using web.config sample from git hub web.config

and my general settings look like this

and the last thing logs from azure

   <!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> 
    <title>IIS Detailed Error - 500.1001 - Internal Server Error</title> 
    <style type="text/css"> 
    <!-- 
    body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;} 
    code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;} 
    .config_source code{font-size:.8em;color:#000000;} 
    pre{margin:0;font-size:1.4em;word-wrap:break-word;} 
    ul,ol{margin:10px 0 10px 5px;} 
    ul.first,ol.first{margin-top:5px;} 
    fieldset{padding:0 15px 10px 15px;word-break:break-all;} 
    .summary-container fieldset{padding-bottom:5px;margin-top:4px;} 
    legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;} 
    legend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px; 
    font-weight:bold;font-size:1em;} 
    a:link,a:visited{color:#007EFF;font-weight:bold;} 
    a:hover{text-decoration:none;} 
    h1{font-size:2.4em;margin:0;color:#FFF;} 
    h2{font-size:1.7em;margin:0;color:#CC0000;} 
    h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;} 
    h4{font-size:1.2em;margin:10px 0 5px 0; 
    }#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif; 
    color:#FFF;background-color:#5C87B2; 
    }#content{margin:0 0 0 2%;position:relative;} 
    .summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;} 
    .content-container p{margin:0 0 10px 0; 
    }#details-left{width:35%;float:left;margin-right:2%; 
    }#details-right{width:63%;float:left;overflow:hidden; 
    }#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF; 
    background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal; 
    font-size:1em;color:#FFF;text-align:right; 
    }#server_version p{margin:5px 0;} 
    table{margin:4px 0 4px 0;width:100%;border:none;} 
    td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:normal;border:none;} 
    th{width:30%;text-align:right;padding-right:2%;font-weight:bold;} 
    thead th{background-color:#ebebeb;width:25%; 
    }#details-right th{width:20%;} 
    table tr.alt td,table tr.alt th{} 
    .highlight-code{color:#CC0000;font-weight:bold;font-style:italic;} 
    .clear{clear:both;} 
    .preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;} 
    --> 
    </style> 

    </head> 
    <body> 
    <div id="content"> 
    <div class="content-container"> 
    <h3>HTTP Error 500.1001 - Internal Server Error</h3> 
    <h4>The page cannot be displayed because an internal server error has occurred.</h4> 
    </div> 
    <div class="content-container"> 
    <fieldset><h4>Most likely causes:</h4> 
    <ul>    <li>IIS received the request; however, an internal error occurred during the processing of the request. The root cause of this error depends on which module handles the request and what was happening in the worker process when this error occurred.</li>    <li>IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.</li>    <li>IIS was not able to process configuration for the Web site or application.</li>     <li>The authenticated user does not have permission to use this DLL.</li>   <li>The request is mapped to a managed handler but the .NET Extensibility Feature is not installed.</li> </ul> 
    </fieldset> 
    </div> 
    <div class="content-container"> 
    <fieldset><h4>Things you can try:</h4> 
    <ul>    <li>Ensure that the NTFS permissions for the web.config file are correct and allow access to the Web server's machine account.</li>     <li>Check the event logs to see if any additional information was logged.</li>  <li>Verify the permissions for the DLL.</li>    <li>Install the .NET Extensibility feature if the request is mapped to a managed handler.</li>  <li>Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 
    </fieldset> 
    </div> 

    <div class="content-container"> 
    <fieldset><h4>Detailed Error Information:</h4> 
    <div id="details-left"> 
    <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;iisnode</td></tr> 
    <tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;ExecuteRequestHandler</td></tr> 
    <tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;iisnode</td></tr> 
    <tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x00000002</td></tr> 

    </table> 
    </div> 
    <div id="details-right"> 
    <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Requested URL</th><td>&nbsp;&nbsp;&nbsp;http://API:80/app.js</td></tr> 
    <tr><th>Physical Path</th><td>&nbsp;&nbsp;&nbsp;D:homesitewwwrootapp.js</td></tr> 
    <tr class="alt"><th>Logon Method</th><td>&nbsp;&nbsp;&nbsp;Anonymous</td></tr> 
    <tr><th>Logon User</th><td>&nbsp;&nbsp;&nbsp;Anonymous</td></tr> 

    </table> 
    <div class="clear"></div> 
    </div> 
    </fieldset> 
    </div> 

    <div class="content-container"> 
    <fieldset><h4>More Information:</h4> 
    This error means that there was a problem while processing the request. The request was received by the Web server, but during processing a fatal error occurred, causing the 500 error. 
    <p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=500,1001,0x00000002,9200">View more information &raquo;</a></p> 
    <p>Microsoft Knowledge Base Articles:</p> 


    </fieldset> 
    </div> 
    </div> 
    </body> 
    </html> 

解决方案

2 things:

  1. You should use process.env.PORT for handling the named pipe port in Azure App Service. See Listen additional port Microsoft Azure Nodejs.

  2. If #1 didn't solve your problem, you'll need to enable logging of stdout and stderr for further troubleshooting. See How to enable BLOB-logging for a Node.js Api App on Azure?

这篇关于Azure 上的 Node Js RestFull API,返回 HTTP 错误 500.1001 - 内部服务器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆