当我将代码部署到Azure Web应用程序时,我立即遇到内部服务器错误,即使它在我自己的计算机上运行完全正常。我的代码来自一个教程并接近这个例子: https://github.com/elishnevsky/OdeToFood/tree/master/src/OdeToFood
但是我没有web.config或OdeToFood.xproj,因为它们没有包含在教程中。我尝试包含这个git项目中的那些,但错误并没有改变。我确保将权限配置为允许每个人完全控制。
我的项目已连接到远程数据库,我可以成功连接到本地计算机并从中进行操作。
我已经使用了azure诊断工具并打开了所有日志记录选项,但是日志流中显示的错误消息并没有改变。 错误可以在下面看到。
我尝试过包含一个随机图片来对抗favicon.ico错误,但这并没有改变任何内容。
任何人都可以建议一些调试技巧,我想我需要了解如何获得详细的错误消息。
IIS详细错误 - 500.0 - 内部服务器错误
HTTP错误500.0 - 内部服务器错误
由于发生内部服务器错误,无法显示页面。
最有可能的原因是:
你可以尝试的事情:
详细错误信息:模块AspNetCoreModule通知ExecuteRequestHandler处理程序aspNetCore错误代码0x00000000请求的URL http://OdeToFood20170518102616:80/物理路径D:\ home \ site \ wwwroot登录方法匿名登录用户匿名 更多信息:此错误表示处理请求时出现问题。 Web服务器收到请求,但在处理期间发生致命错误,导致500错误。 Microsoft知识库文章:
IIS详细错误 - 500.0 - 内部服务器错误
HTTP错误500.0 - 内部服务器错误
由于发生内部服务器错误,无法显示页面。
最有可能的原因是:
IIS收到了请求;但是,在处理请求期间发生了内部错误。
此错误的根本原因取决于哪个模块处理请求以及发生此错误时工作进程中发生的情况。 IIS无法访问网站或应用程序的web.config文件。如果NTFS权限设置不正确,则会发生这种情况。 IIS无法处理网站或应用程序的配置。 经过身份验证的用户无权使用此DLL。 请求将映射到托管处理程序,但未安装.NET可扩展性功能。 你可以尝试的事情: 确保web.config文件的NTFS权限正确并允许访问Web服务器的计算机帐户。 检查事件日志以查看是否记录了任何其他信息。 验证DLL的权限。 如果请求映射到托管处理程序,请安装.NET Extensibility功能。 创建跟踪规则以跟踪此HTTP状态代码的失败请求。有关为失败的请求创建跟踪规则的更多信息,请单击。 详细错误信息:模块AspNetCoreModule通知ExecuteRequestHandler处理程序aspNetCore错误代码0x00000000请求的URL OdeToFood20170518102616:80 / favicon.ico物理路径D:\ home \ site \ wwwroot \ favicon.ico登录方法匿名登录用户匿名 更多信息:此错误表示处理请求时出现问题。 Web服务器收到请求,但在处理期间发生致命错误,导致500错误。 Microsoft知识库文章:
答案 0 :(得分:2)
根据你的github项目,我在我的电脑上安装了一个测试演示。我发现这个项目定义了一个自定义物理文件提供程序(你可以找到 它在Middleware文件夹中:UseNodeModules)。
通过将项目克隆到本地,VS会自动将js文件下载到node_modules文件夹中。
将项目发布到azure Web应用程序服务时,VS不会将node_modules文件夹复制到azure Web应用程序。所以应用程序将如何500错误。
我建议你可以在本地找到UseNodeModules文件夹并将其复制到azure web应用程序。
更多细节,您可以参考以下步骤。
1.在您的网络应用中打开KUDU控制台。
2.Click CMD控制台和本地wwwrot文件夹
3.添加新文件夹并上传node_modules文件夹。
重新启动应用程序,您的项目将运行良好。
由于您的项目与github项目不同,如果您仍然遇到错误。
我建议您可以更改以下应用程序设置,以查看详细信息错误消息。
1.在Web服务门户中打开应用程序设置。
2.添加主机:环境如下:
此外,我建议你查看你的网络应用程序的连接字符串。如果您不使用混合连接,Azure网络应用无法连接到本地服务器。
我建议你可以创建一个azure sql server并将连接字符串更改为azure sql server的连接字符串。