Asp.Net Core App 部署故障示例 2
1. HTTP Error 502.5 – Process Failure
环境
Windows Server 2012, IIS 8, Asp.Net Core 2.
故障
App按正常流程发布后通过浏览器访问出现以下错误:
HTTP Error 502.5 – Process Failure
|
排错
1. 首先查看服务器上日志
可以看到系统捕捉到两个错误,其中 IIS AspNetCore Module错误详细信息为:
Application 'MACHINE/WEBROOT/APPHOST/SUGARRUSH.AUTH.WEB' with physical root 'C:\WebSites\WebApplication1\' failed to start process with commandline 'dotnet .\WebApplication1.dll', ErrorCode = '0x80004005 : ff.
此信息与示例1的错误很相似,都是在执行 dotnet WebApplication1.dll 时出错了。
2. 接下来通过命令行工具检查一下
竟然没有出错!http://localhost:5000能够正常访问。这说明服务器中的.Net Core环境应该没有问题,问题可能出在IIS映射到App的某个环节上。
3. 考虑到映射过程中最容易发生错误的就是路径问题,因此回顾了一下代码,Startup.cs中只有一个地方涉及到本地文件路径:
new X509Certificate2(@"c:\ca\cert.pfx", "")
仔细检查了文件路径以及cert.pfx的读取权限(Everyone 完全控制),均没有发现问题。
4. 注释改行代码,重新部署后App就能够正常访问了。说明问题就出在文件的读取上。
解决
参考《关于 X509Certificate2 找到文件路径的问题》这篇文章,在IIS的“应用程序池-高级设置”中,将“加载用户配置文件”设置为True,问题就解决了。
小结
Asp.net Core App 在部署的时候涉及三个主要部分,IIS、Hosting Bundle及程序本身,排除故障的时候相对麻烦。示例1是Hosting Bundle版本问题,本例是IIS配置问题,但最终返回的错误信息都是HTTP Error 502.5 – Process Failure,着实不太友好~
后续
先前在执行dotnet WebApplication1.dll时并没有报错,是因为执行路径是在App的根目录:
如果是在其它路径执行,比如默认路径:
就会发生错误:
从中可以明确知道是X509Certificate2证书路径问题。
dotnet.exe执行路径不同会有不同结果,因此可以用上述方法来定位类似的路径问题。
Asp.Net Core App 部署故障示例 2的更多相关文章
- Asp.Net Core App 部署故障示例 1
相关阅读:Windows + IIS 环境部署Asp.Net Core App 1. HTTP Error 502.5 – Process Failure 环境 Windows Server 201 ...
- Windows + IIS 环境部署Asp.Net Core App
环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运 ...
- Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App
Windows + IIS 环境部署Asp.Net Core App 环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...
- 在CentOS7 开发与部署 asp.net core app笔记
原文:在CentOS7 开发与部署 asp.net core app笔记 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lihongzhai/art ...
- .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上
今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMem ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...
- 实战Asp.Net Core:部署应用
1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这也是不完整的.接下来,我们就来说说,如何部署 ...
- Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署
运行环境 照例,先亮底 centos:7.2 cpu:1核 2G内存 1M带宽 辅助工具:xshell xftp 搭建.net core运行环境 .net core 的运行环境我单独写了一篇,请看我的 ...
- Docker的asp.net core应用部署系列——docker pull 加速
原文:Docker的asp.net core应用部署系列--docker pull 加速 版权声明:本文为博主原创文章,随意转载. https://blog.csdn.net/Michel4Liu/a ...
随机推荐
- USACO 6.2 Packing Rectangles
Packing RectanglesIOI 95 The six basic layouts of four rectangles Four rectangles are given. Find th ...
- Bootstrap进阶五:Web开发中很实用的交互效果积累
1.页面切换效果 我们已经在示例中罗列了一组动画,可以被应用到页面切换过程中,创造出很有趣的导航效果.  2.视差滚动(parallax-slider) 视差滚动(parallax-slider)已 ...
- C#拖拽操作
C#的拖拽 本文将以Winform为例 有两个主要的事件: DragEnter 拖拽到区域中触发的事件 DragDrop 当拖拽落下的时候出发此事件 饮水思源 参考博客: http://www.cnb ...
- [python 源码]整数对象的创建和维护
刚开始学python时候,发现一个很迷惑的现象,一直到看了源码后才知道了: >>> a=6 >>> b=6 >>> a is b True 想用同 ...
- Swift2.0语言教程之函数的返回值与函数类型
Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有 ...
- python opencv3 人脸识别的例子
一个人脸识别的例子 程序中用到了公共数据集, 欢迎去我的git上下载源码,源码里带有数据集 git:https://github.com/linyi0604/Computer-Vision 脚本中一个 ...
- Acer宏碁暗影骑士3进阶版无法进入系统引导修复
1.刚开机时,按住alt不放,不停点击F10进入恢复系统: 2.点击疑难解答,选择cmd: 3.以下是cmd命令,//注释不要复制 c: //进入C盘 cd windows cd system32 b ...
- Spring Boot 运作原理
Spring Boot 运作原理 1.Spring Boot 简介 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了 ...
- bzoj 1069
最开始想到的是枚举3个点,另一个点用卡壳的思想,但实际上可以只枚举两个点(对角线上的两个点),其余两个点用卡壳. /****************************************** ...
- POJ 1654 Area 计算几何
#include<stdio.h> #include<string.h> #include<iostream> #include<math.h> usi ...