.Net Core IIS下无Log4Net日志输出,命令行下却有(dotnet运行)

遇到个诡异的问题,项目发布并寄宿到 IIS上后,Log4Net没有日志输出

1.原因分析

这不应该啊,所有的配置都在.Net Core控制台做了测试

因为控制台上会有输出信息,所以切到控制台下运行(dotnet *.dll),确实有特意抛出的异常信息,且文件夹会被创建并写入异常信息。但是IIS寄宿死活不出输出日志(这里应该怀疑时IIS的配置问题 orz)。

百度无果,就Google,终于找到原因了

其实:ASP.NET CoreInProcess & OutOfProcess两种托管模型

在 IIS 工作进程 (w3wp.exe) 内托管 ASP.NET Core 应用,称为进程内托管模型。
将 Web 请求转发到运行 Kestrel 服务器的后端 ASP.NET Core 应用,称为进程外托管模型。

将IIS下的InProcess 托管模型切换成Kestrel下的OutOfProcess托管模型

2. 解决办法

直接修改项目文件(*.csproj)

<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
</PropertyGroup>

修改发布后的web.config文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\RiChooseCourse.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />
</system.webServer>
</location>
</configuration>

.Net Core IIS下无Log4Net日志输出,命令行下却有(dotnet运行)的更多相关文章

  1. C#中使用Log4net日志输出到本地文件、Textbox或Listview

    网上很多配置log4net的方法,但是排行靠前的 根本就没有说明清除,导致浪费了两个小时来搞清楚如何配置,真是无语,特写此文,给那些刚接触log4net的朋友 1.参考链接:http://blog.s ...

  2. 命令行下IIS的配置脚本Adsutil.vbs

    命令行下IIS的配置脚本Adsutil.vbs 2009-08-20 12:26:52  www.hackbase.com  来源:Jackal's Blog Jackal's Blog文件存在于:C ...

  3. linux下常用的日志分析命令

    linux下常用的日志分析命令   本文介绍下,在linux中常用的一些分析日志的命令行或脚本,有需要的朋友参考下.     形如下面这样的access.log日志内容: 211.123.23.133 ...

  4. 详解Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  5. 在CMD命令行下关闭进程的命令

    转载: [重要]在CMD命令行下关闭进程的命令━━━━━━━━━━━━━━━━━━━━━━━━━━ 方法一: 在"运行"中输入:ntsd -c q -pn 程序名字(在MS-Dos ...

  6. Linux系统——28个命令行下的工具

    Unix/Linux下的28个命令行下的工具 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不 ...

  7. Linux命令行下常用svn命令

    1.Linux命令行下将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/do ...

  8. 【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

    前言 本篇博客先介绍在仿真过程中会使用到的一些关键概念,然后介绍便于调试仿真脚本的常用技术:日志.命令行参数. 关键概念 节点 在因特网术语中,主机(终端)是指任何一台连接到网络的计算设备.ns-3并 ...

  9. 在linux命令行下执行php 程序

    如何在linux命令行下,执行php程序. 例子 打印当前时间 php -r "echo time()" 随机输出一个数字 php -r "echo rand(1,20) ...

随机推荐

  1. 【杂题】[CodeForces 1172D] Nauuo and Portals【构造】

    Description 有一个n*n的网格,你需要在上面设置一些传送门,传送门由两个配对的格子组成,从一个进入会立刻从另一个同一方向出来. 现在有n个人从第1列出发向右走,位于(i,1)的人要走到(r ...

  2. html页面中引入html

    我们写页面通常会遇到这种情况,一个模块很多页面都用到,那么我们为了方便就会单独写到一个页面,然后引入进去,我知道的有三种: 1.用标签<iframe></iframe> 例: ...

  3. R_Studio(时序)Apriori算法寻找频繁项集的方法

    应用ARIMA(1,1,0)对2015年1月1日到2015年2月6日某餐厅的销售数量做为期5天的预测 setwd('D:\\dat') #install.packages("forecast ...

  4. linux 下使用命令查看jvm信息

    java程序员除了编写业务代码之外,特别是项目上线之后,更需要关注的是系统的性能表现,这个时候就需要了解一下jvm的性能表现了,可以借助于java虚拟机自带的一些分析工具,主要有三个常用的命令. 1. ...

  5. koa2,koa-jwt中token验证实战详解

    用户身份验证通常有两种方式,一种是基于cookie的认证方式,另一种是基于token的认证方式.当前常见的无疑是基于token的认证方式.以下所提到的koa均为koa2版本. token认证的优点是无 ...

  6. shell编程连接postgres数据库(数据备份)

    第一步:通过xshell或者其他工具连接到linux服务, 第二步:创建一个脚本:touch se.sh 第三步:输入i,代表开始输入内容 输入以下命令: 脚本如下:(sql语句可以是任何复杂的sql ...

  7. cgo

    package main import ( "unsafe" "fmt") /*#cgo CFLAGS: -I./#cgo LDFLAGS: -L./#incl ...

  8. 【python学习】字符串相关

    # -*- coding: utf-8 -*- # ========================================================================== ...

  9. spark 笔记 14: spark中的delay scheduling实现

    延迟调度算法的实现是在TaskSetManager类中的,它通过将task存放在四个不同级别的hash表里,当有可用的资源时,resourceOffer函数的参数之一(maxLocality)就是这些 ...

  10. Linux搭建Samba共享服务器

    实验要求: Samba文件共享服务配置与访问,配置访问用户以及相应权限. Tips:创建共享目录/test和/share,并且分别在/test下创建文件tf1(只读)tf2(读写)  在/share ...