欢迎光临
我们一直在努力

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

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

这不应该啊,所有的配置都在.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. 解决办法

<PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel> </PropertyGroup> 
<?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> 

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:.Net Core IIS下无Log4Net日志输出,命令行下却有(dotnet运行)
文章链接:https://www.jmwz.net/1779.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)