记录日志,环境部署Asp

图片 8

记录日志,环境部署Asp

   
近年来写了个定期邮件推送的劳务,当使用lognet4记下日志时,发掘日志并未记录。后来晓得windows
服务平日默许是在C:WindowsSystem
或是C:WindowsSystem32,而我们和好的服务程序日常是献身别的的目录,那样log4net.config文件中的配置路线将不可能正确拆解剖判。所以就不可能记录日志。本来笔者的lognet4文件与劳动文件位于同一目录,后来自身就把lognet4.config文件放在了程序exe所在的目录。

环境:Windows Server 2012, IIS 8, Asp.Net
Core 1.1.

    1.  笔者的lognet4.config文件配置内容如下:

有的是人率先次在IIS中布局Asp.Net Core
App的人都会遇到标题,会发觉原本的布局方式不可能运转Asp.Net Core
App程序。过去不管原始的Asp程序依旧新兴的Asp.Net程序,在IIS中的陈设方式都没太大变迁,仅需指向程序目录,然后设定设想目录,最后做一些参数配置。Asp.Net
Core App为了完毕跨平台,自带了二个轻量级的Web Server –
Kestrel,那么要在IIS中配备Asp.Net Core
App,就必须要有黄金时代种新的编写制定来协和IIS与Kestrel Server之间的数码传递。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
 </configSections>

  <log4net>
    <logger name="sendEmailrError">
      <level value="ALL"/>
      <!--ALL DEBUG INFO WARN ERROR FATAL OFF-->
      <appender-ref ref="RollingLogFileAppender"/> 
    </logger>

    <!--<logger name="ugmrob2bLoggerInfo">
      <level value="ALL"/>
      --><!--ALL DEBUG INFO WARN ERROR FATAL OFF--><!--
      <appender-ref ref="LoggerInfo"/>
    </logger>-->

    <appender name="LoggerInfo" type="log4net.Appender.RollingFileAppender"> 
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--存放日志的路径-->
      <param name="File" value="E:/Log/LogInfo/"/>
      <!--日志文件中追加-->
      <param name="AppendToFile" value="true"/>
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false"/>
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100"/>
      <param name="MaximumFileSize" value="5MB"/>
      <!--日志名称-->
      <param name="DatePattern" value="yyyy-MM-dd".log""/>
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date"/>

      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%n异常时间: %d%n记录器: %c%n异常信息: %m%n异常位置:[%t] %-5p [%l]%n"/>
      </layout>
    </appender>

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <!--存放日志的路径-->
      <param name="File" value="E:/Log/LogError/"/>
      <!--日志文件中追加-->
      <param name="AppendToFile" value="true"/>
      <!--日期文件是否固定不变-->
      <param name="StaticLogFileName" value="false"/>
      <!--最多保存多少天的记录-->
      <param name="MaxSizeRollBackups" value="100"/>
      <param name="MaximumFileSize" value="5MB"/>
      <!--日志名称-->
      <param name="DatePattern" value="yyyy-MM-dd".log""/>
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date"/>
      <layout type="log4net.Layout.PatternLayout">
        <!--<param name="ConversionPattern" value="%n异常时间: %d%n记录器: %c%n异常信息: %m%n异常位置:[%t] %-5p [%l]%n"/>-->
        <conversionPattern value="%n记录时间:%date 线程ID:[%thread] 日志级别:%-5level  %n错误描述:%message%newline" />

      </layout>
      <!--<filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG"/>
        <param name="LevelMax" value="FATAL"/>
      </filter>-->
    </appender>

  </log4net>

</configuration>

1.  Asp.Net Core的计划方式

与观念的Asp.Net程序分化,Asp.Net Core
App使用了Kestrel Server。Kestrel是三个跨平台的Web
Server,与IIS同样承当哀告的监听、选拔和响应,但绝非IIS丰硕的拘系成效,仍亟需由IIS来拍卖部分内置专业。(当然你也足以动用Apache来做前置处理卡塔尔

图片 1

IIS肩负把外界哀告转发给后端的Asp.net Core
App,充作“反向代理(reverse-proxy卡塔 尔(阿拉伯语:قطر‎”剧中人物。

 2. 接着在Main入口函数拆解深入分析lognet4.config文件。

2.  接头反向代理

“反向”是指入站方向,“代理”可以明白为某种服务,这里是转载HTTP需要的服务。“反向代理”便是入站方向转向HTTP央求的劳动。

和路由器原理同样,路由器除了让局域网能够访谈internet,也能够透过安装NAT或端口映射,从internet访谈内部的某台服务器,也就是把入站乞请转载给内定计算机上,那与IIS的反向代理剧中人物相仿。代理服务器与路由器都以起到数量转载的效率,只但是代理服务器转载的是某类应用的多寡,路由器转载的是数据包。

  static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        static void Main()
        {
            string assemblyFilePath = Assembly.GetExecutingAssembly().Location;
            string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);
            string configFilePath = assemblyDirPath + "\log4net.config";
            XmlConfigurator.ConfigureAndWatch(new FileInfo(configFilePath));

            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new SendEmailService() 
            };
            ServiceBase.Run(ServicesToRun);
        }
    }

3.  配置景况

Asp.Net Core App布置须要操作系统满意:

  • Windows 7 或更新版本
  • Windows Server 二〇〇九 大切诺基2 或更新版本

 3. 
实例ILog,起头记录日志,当中sendEmailrError为lognet4.config文件中logger的name名称。

4.  配置IIS

Windows
Server上经过“增加剧中人物和职能”,桌面Windows上通过“启用和关闭Windows功效”来设置和布局IIS。确认保证勾选Web服务和“IIS
管控台”:

图片 2

Windows Server IIS 安装配备 

图片 3

 桌面Windows IIS 安装配备

log4net.ILog log = log4net.LogManager.GetLogger("sendEmailrError");
log.Error("错误信息");

5.  安装.NET Core Windows Server Hosting程序集

安装.NET Core Windows Server
Hosting程序集,让IIS具有反向代理成效。该程序集富含了.Net
Core运维时(Runtime卡塔尔,.Net Core 类库(Library卡塔 尔(阿拉伯语:قطر‎和 Asp.Net Core
Module。当中Asp.Net Core Module担负反向代理专门的工作。

极其注意,按微软官方说法,如若是脱机安装,则需先手动安装Microsoft Visual
C++ 二零一六Redistributable。但实践表明纵然在线安装超多时候也不会自行安装 Microsoft
Visual C++ 二〇一六 Redistributable,之所以猛烈指动手动安装Microsoft Visual
C++ 贰零壹陆 Redistributabl

另外,最近.NET Core版本晋级飞快,请下载最新版本的.NET Core Windows
Server Hosting,确认保障服务器上的.Net Core版本不低于铺排的Asp.Net Core
App版本。

下载 Microsoft Visual C++ 2015
Redistributable

下载最新版本.NET Core Windows Server
Hosting

设置到位重启系统或重启IIS服务就能够。

  

6.  IIS中配置Asp.Net Core App

接下去的步调与布局守旧网址基本风度翩翩致,但也会有稍稍不相同,请小心。

1)
 服务器中成立目录贮存宣布之后的App程序文件,确定保证App的web.config文件在网址根目录下。

2)
 在网址根目录创设一个logs文件夹。借让你开启了好几日志服务,日志文件将记录在那处。当然也得以不记录日志,但首先布置对排错有赞助,提议创造。

图片 4

    web.config 中开启 stdoutLogEnabled=”true”

<aspNetCore processPath="dotnet" arguments=".Web.dll" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" />

3)  在IIS管理器中增多网址。步骤与平时网址配置风流倜傥致:

图片 5

图片 6

4)
配置利用程序池。在左边手导航栏采用“应用程序池”,选取钦命程序池,右键菜单,接纳“基本设置”,将.Net
CLAventador版本设置为“无托管代码”。

图片 7

    

记录日志,环境部署Asp。7.  测试Asp.Net Core App

本例使用叁个测验公网域名www.test.com,显明大家从未权限校正此域名在公网的剖判记录,但大家能够转移此域名在地点的对准用于测验。使用记事本张开C:WindowsSystem32Driversetchosts文件,增加一条记录
“127.0.0.1     
www.test.com”。之后大家在该地访谈域名www.test.com时IP地址将深入分析为
127.0.0.1。使用浏览器张开www.test.com,大家探望到Asp.Net Core
App已健康运转:

图片 8

 

相关阅读:Asp.Net Core App 部署故障示例

admin

网站地图xml地图