威尼斯人线上娱乐

条件陈设Asp,记录日志

30 3月 , 2019  

   
方今写了个定时邮件推送的劳务,当使用lognet4记录日志时,发现日志并不曾记录。后来清楚windows
服务一般私下认可是在C:\Windows\System
或是C:\Windows\System32,而小编辈和衷共济的服务程序一般是位于别的的目录,那样log4net.config文件中的配置路径将不能正确分析。所以就不只怕记录日志。本来作者的lognet4文件与劳动文件位于同一目录,后来自家就把lognet4.config文件放在了程序exe所在的目录。

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

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

Windows + IIS 环境布署Asp.Net Core App

 

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

诸多个人率先次在IIS中配备Asp.Net Core
App的人都会赶上难点,会发觉原来的配备情势不能够运维Asp.Net Core
App程序。过去无论是原始的Asp程序依然新兴的Asp.Net程序,在IIS中的布置格局都没太大转移,仅需指向程序目录,然后设定虚拟目录,最后做一些参数配置。Asp.Net
Core App为了形成跨平台,自带了1个轻量级的Web Server –
Kestrel,那么要在IIS中配备Asp.Net Core
App,就不可能不有一种新的建制来协调IIS与Kestrel Server之间的数目传递。

    1.  小编的lognet4.config文件配置内容如下:

有的是人第1次在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之间的多寡传递。

威尼斯人线上娱乐 ,广大人率先次在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之间的数量传递。

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)”剧中人物。

<?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来做前置处理)

威尼斯人线上娱乐 2

IIS负责把外部请求转载给后端的Asp.net Core
App,充当“反向代理(reverse-proxy)”剧中人物。

1.  Asp.Net Core的布置形式

与价值观的Asp.Net程序分化,Asp.Net Core
App使用了Kestrel Server。Kestrel是七个跨平台的Web
Server,与IIS一样负责请求的监听、接收和响应,但未曾IIS丰裕的军事管制成效,仍需求由IIS来拍卖部分置于工作。(当然你也足以采纳Apache来做前置处理)

威尼斯人线上娱乐 3

IIS负责把外部请求转载给后端的Asp.net Core
App,充当“反向代理(reverse-proxy)”剧中人物。

2.  掌握反向代理

“反向”是指入站方向,“代理”能够掌握为某种服务,那里是转载HTTP请求的劳动。“反向代理”正是入站方向转化HTTP请求的服务。

和路由器原理一样,路由器除了让局域网可以访问internet,也足以因此安装NAT或端口映射,从internet访问内部的某台服务器,相当于把入站请求转载给钦点电脑上,那与IIS的反向代理角色类似。代理服务器与路由器都以起到数量转载的效劳,只可是代理服务器转载的是某类应用的数额,路由器转发的是数据包。

 2. 跟着在Main入口函数解析lognet4.config文书。

2.  亮堂反向代理

“反向”是指入站方向,“代理”可以精通为某种服务,那里是转账HTTP请求的劳动。“反向代理”正是入站方向转向HTTP请求的劳务。

和路由器原理一样,路由器除了让局域网能够访问internet,也能够由此设置NAT或端口映射,从internet访问内部的某台服务器,相当于把入站请求转载给钦点电脑上,那与IIS的反向代理角色类似。代理服务器与路由器都以起到数码转载的功效,只但是代理服务器转载的是某类应用的数额,路由器转载的是数据包。

2.  通晓反向代理

“反向”是指入站方向,“代理”可以清楚为某种服务,那里是转载HTTP请求的服务。“反向代理”正是入站方向转化HTTP请求的劳务。

和路由器原理一样,路由器除了让局域网能够访问internet,也得以通过安装NAT或端口映射,从internet访问内部的某台服务器,也正是把入站请求转载给钦定电脑上,那与IIS的反向代理剧中人物类似。代理服务器与路由器都以起到多少转载的效益,只可是代理服务器转发的是某类应用的数据,路由器转载的是数据包。

3.  陈设环境

Asp.Net Core App铺排要求操作系统满足:

  • 条件陈设Asp,记录日志。Windows 7 或更新版本
  • Windows Server 二零一零 R2 或更新版本
  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 二零零六 PRADO2 或更新版本

3.  安插环境

Asp.Net Core App计划要求操作系统餍足:

  • Windows 7 或更新版本
  • Windows Server 二〇〇九 奥迪Q72 或更新版本

4.  配置IIS

Windows
Server上通过“添加剧中人物和成效”,桌面Windows上经过“启用和倒闭Windows功效”来安装和配置IIS。确认保障勾选Web服务和“IIS
管控台”:

威尼斯人线上娱乐 4

Windows Server IIS 安装配备 

威尼斯人线上娱乐 5

 桌面Windows IIS 安装配备

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

4.  配置IIS

Windows
Server上经过“添加剧中人物和职能”,桌面Windows上通过“启用和关闭Windows作用”来安装和计划IIS。确定保证勾选Web服务和“IIS
管控台”:

威尼斯人线上娱乐 6

Windows Server IIS 安装配置 

威尼斯人线上娱乐 7

 桌面Windows IIS 安装配置

4.  配置IIS

Windows
Server上经过“添加剧中人物和作用”,桌面Windows上经过“启用和关闭Windows功用”来安装和陈设IIS。确认保证勾选Web服务和“IIS
管控台”:

威尼斯人线上娱乐 8

Windows Server IIS 安装配置 

威尼斯人线上娱乐 9

 桌面Windows IIS 安装配备

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++ 2016 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服务即可。

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服务即可。

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++ 2014 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文件夹。就算您敞开了有个别日志服务,日志文件将记录在此处。当然也能够不记录日志,但首先布置对排错有帮带,提议创立。

威尼斯人线上娱乐 10

    web.config 中开启 stdoutLogEnabled=”true”

<aspNetCore processPath="dotnet" arguments=".\Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

3)  在IIS管理器中添加网站。步骤与一般网站配置一致:

威尼斯人线上娱乐 11

威尼斯人线上娱乐 12

4)
配置使用程序池。在左手导航栏选用“应用程序池”,采取钦定程序池,右键菜单,选拔“基本设置”,将.Net
CL奥迪Q3版本设置为“无托管代码”。

威尼斯人线上娱乐 13

  

6.  IIS中配置Asp.Net Core App

接下去的步调与布局守旧网站基本一致,但也有个别许分歧,请留意。

1)
 服务器中开创目录存放发表之后的App程序文件,确认保证App的web.config文件在网站根目录下。

2)
 在网站根目录创设八个logs文件夹。假设您开启了少数日志服务,日志文件将记录在那边。当然也得以不记录日志,但起始铺排对排错有赞助,建议创立。

威尼斯人线上娱乐 14

    web.config 中开启 stdoutLogEnabled=”true”

<aspNetCore processPath="dotnet" arguments=".\Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

3)  在IIS管理器中添加网站。步骤与一般网站配置一致:

威尼斯人线上娱乐 15

威尼斯人线上娱乐 16

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

威尼斯人线上娱乐 17

6.  IIS中配置Asp.Net Core App

接下去的步骤与计划守旧网站基本一致,但也有微微区别,请留心。

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

2)
 在网站根目录创立二个logs文件夹。如若您敞开了一些日志服务,日志文件将记录在此间。当然也能够不记录日志,但首先计划对排错有帮带,建议成立。

威尼斯人线上娱乐 18

    web.config 中开启 stdoutLogEnabled=”true”

<aspNetCore processPath="dotnet" arguments=".\Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />

3)  在IIS管理器中添加网站。步骤与一般网站配置一致:

威尼斯人线上娱乐 19

威尼斯人线上娱乐 20

4)
配置利用程序池。在左边导航栏选取“应用程序池”,选用内定程序池,右键菜单,选择“基本设置”,将.Net
CL奔驰G级版本设置为“无托管代码”。

威尼斯人线上娱乐 21

7.  测试Asp.Net Core App

本例使用二个测试公网域名www.test.com,分明我们一贯不权力更改此域名在公网的解析记录,但大家得以转移此域名在本地的针对用于测试。使用记事本打开C:\Windows\System32\Drivers\etc\hosts文件,添加一条记录
“127.0.0.1     
www.test.com”。之后我们在本地访问域名www.test.com时IP地址将分析为
127.0.0.1。使用浏览器打开www.test.com,我们晤面到Asp.Net Core
App已健康运转:

威尼斯人线上娱乐 22

 

原稿链接:

    

7.  测试Asp.Net Core App

本例使用三个测试公网域名www.test.com,显明大家并未权限更改此域名在公网的剖析记录,但大家得以转移此域名在地面的针对用于测试。使用记事本打开C:\Windows\System32\Drivers\etc\hosts文件,添加一条记录
“127.0.0.1     
www.test.com”。之后大家在地面访问域名www.test.com时IP地址将分析为
127.0.0.1。使用浏览器打开www.test.com,我们会看出Asp.Net Core
App已司空眼惯运作:

威尼斯人线上娱乐 23

 

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

7.  测试Asp.Net Core App

本例使用三个测试公网域名www.test.com,明显大家从没权力更改此域名在公网的解析记录,但大家能够改变此域名在当地的对准用于测试。使用记事本打开C:\Windows\System32\Drivers\etc\hosts文件,添加一条记录
“127.0.0.1     
www.test.com”。之后大家在本土访问域名www.test.com时IP地址将分析为
127.0.0.1。使用浏览器打开www.test.com,大家会晤到Asp.Net Core
App已健康运转:

威尼斯人线上娱乐 24

 

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


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图