相关阅读:Windows + IIS 环境部署Asp.Net Core App

1.  HTTP Error 502.5 – Process Failure

环境

Windows Server 2012, IIS 8, Asp.Net Core 2.

故障

App按正常流程发布后通过浏览器访问出现以下错误:

HTTP Error 502.5 – Process Failure

  • The application process failed to start
  • The application process started but then stopped
  • The application process started but failed to listen on the configured port

排错

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的更多相关文章

  1. Asp.Net Core App 部署故障示例 1

    相关阅读:Windows + IIS 环境部署Asp.Net Core App 1.  HTTP Error 502.5 – Process Failure 环境 Windows Server 201 ...

  2. Windows + IIS 环境部署Asp.Net Core App

    环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运 ...

  3. 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 ...

  4. 在CentOS7 开发与部署 asp.net core app笔记

    原文:在CentOS7 开发与部署 asp.net core app笔记 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lihongzhai/art ...

  5. .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上

    今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMem ...

  6. Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署

    运行环境 照例,先亮环境:软件的话我这里假设你已经批准好了.net core 运行环境,未配置可以看我的这篇[linux(centos)搭建.net core 运行环境] 腾讯云 centos:7.2 ...

  7. 实战Asp.Net Core:部署应用

    1.前言 某一刻,你已经把 .Net Core 的程序写好了.接下来,还可以做什么呢?那就是部署了. 作为一名开发工程师,如果不会部署自己开发的应用,那么这也是不完整的.接下来,我们就来说说,如何部署 ...

  8. Asp.Net Core 程序部署到Linux(centos)生产环境(一):普通部署

    运行环境 照例,先亮底 centos:7.2 cpu:1核 2G内存 1M带宽 辅助工具:xshell xftp 搭建.net core运行环境 .net core 的运行环境我单独写了一篇,请看我的 ...

  9. Docker的asp.net core应用部署系列——docker pull 加速

    原文:Docker的asp.net core应用部署系列--docker pull 加速 版权声明:本文为博主原创文章,随意转载. https://blog.csdn.net/Michel4Liu/a ...

随机推荐

  1. codeforces 286 E. Ladies' Shop (FFT)

    E. Ladies' Shop time limit per test 8 seconds memory limit per test 256 megabytes input standard inp ...

  2. R语言实战(九)主成分和因子分析

    本文对应<R语言实战>第14章:主成分和因子分析 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量成为主成分. 探索性因子分析(EFA)是 ...

  3. 洛谷P2597 [ZJOI2012] 灾难 [拓扑排序,LCA]

    题目传送门 灾难 题目描述 阿米巴是小强的好朋友. 阿米巴和小强在草原上捉蚂蚱.小强突然想,如果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难. ...

  4. Eclipse daemon not running. starting it now on port ***的

    daemon not running. starting it now on port ***的 1) 运行 cmd,进入命令行2) 输入 netstat -ano ,找出占用端口***(port * ...

  5. 跟厂长学PHP7内核(二):源码分析的环境与工具

    本文主要介绍分析源码的方式,其中包含环境的搭建.分析工具的安装以及源码调试的基本操作. 一.工具清单 PHP7.0.12 GDB CLion 二.源码下载及安装 $ wget http://php.n ...

  6. [leetcode trie]212. Word Search II

    Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ...

  7. iOS 11开发教程(十)iOS11无线连接手机真机测试

    iOS 11开发教程(十)iOS11无线连接手机真机测试 在Xcode 9.0中,已经可以通过无线连接手机进行真机测试了.具体的操作步骤如下: (1)首先需要使用数据线将手机连接到苹果电脑上. (2) ...

  8. [USACO11DEC]Grass Planting

    题目大意: 有一棵结点个数为n的树,有m个操作,可以将一段路径上每条边的权值+1或询问某一个边的权值. 思路: 树链剖分+线段树. 轻重链划分本身比较简单,主要需要思考如何用线段树维护每条链. 当x, ...

  9. bash编程之 ~制作Mini Linux系统~

    说明1:在一个Linux宿主机系统上,通过以上步骤,可以制作一个微小的Linux系统(可以放置在U盘中等),然后在其它的主机(虚拟机或者物理机)上运行,以实现最小化定制系统的目的. 说明2:上图中黑色 ...

  10. ARM JTAG 20

    http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0499b/BEHEIHCE.html he ARM JTAG 20 co ...