.net5Core入门学习(包含IIS上部署)

一. 环境搭建

安装vs2019

vs下载地址: https://visualstudio.microsoft.com/zh-hans/vs/.

环境要求
1.Visual Studio2019 16.80版本
2…NET5运行时—发布部署
如果是2020年11月11日之后下载安装的时候,可以直接基于Visual Studio2019 16.80版本做开发;

二. 创建并启动项目

添加一个web应用
在这里插入图片描述
在这里插入图片描述
运行项目

  1. 可直接点击iis 运行即可
    在这里插入图片描述
  2. 右键项目打开文件bin/Debug/net5.0
    在这里插入图片描述
    在这里插入图片描述
    cmd进入命令行
    在这里插入图片描述
    在命令行中启动dll 这个文件 如下图所示
    在这里插入图片描述
    然后到浏览器中访问地址即可

注意:要把wwwroot文件复制进来否则样式无法显示

在这里插入图片描述
效果如图
在这里插入图片描述

三. 值传递

在这里插入图片描述
HomeContoller下的index方法代码如下:

public IActionResult Index()
        {
         
            base.ViewBag.name1 = "张三";
            base.ViewData["name2"] = "李四";
            base.TempData["name3"] = "王五";
            object name4 = "赵六";
            //通过Session传值
            if(HttpContext.Session.GetString("name5") == null)
            {
                HttpContext.Session.SetString("name5", "田七");
            }
            
            return View(name4);
        }

注意先引入using Microsoft.AspNetCore.Http;

在.net5Core中Session 的使用必须先配置 如下图所示
在这里插入图片描述

home/index 代码如下:

@{
    ViewData["Title"] = "Home Page";
}
@model System.String
@using Microsoft.AspNetCore.Http
<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
<h1>
@ViewBag.name1
</h1>
<h1>
    @ViewData["name2"]
</h1>
<h1>
    @TempData["name3"]
</h1>
<h1>
    @Model
</h1>
<h1>
    @Context.Session.GetString("name5")
</h1>


效果如图
在这里插入图片描述

四. _log4net组件的使用

首先下载两个扩展包如下图:

在这里插入图片描述
添加一个日志的配置文件

在这里插入图片描述
log4net.Config

<?xml version="1.0" encoding="utf-8"?>
<log4net>
	<!-- Define some output appenders -->
	<appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
	    //文件生成路径
		<file value="Customlog\log.txt" />
		<!--追加日志内容-->
		<appendToFile value="true" />

		<!--防止多线程时不能写Log,官方说线程非安全-->
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

		<!--可以为:Once|Size|Date|Composite-->
		<!--Composite为Size和Date的组合-->
		<rollingStyle value="Composite" />

		<!--当备份文件时,为文件名加的后缀-->
		<datePattern value="yyyyMMdd.TXT" />

		<!--日志最大个数,都是最新的-->
		<!--rollingStyle节点为Size时,只能有value个日志-->
		<!--rollingStyle节点为Composite时,每天有value个日志-->
		<maxSizeRollBackups value="20" />

		<!--可用的单位:KB|MB|GB-->
		<maximumFileSize value="3MB" />

		<!--置为true,当前最新日志文件名永远为file节中的名字-->
		<staticLogFileName value="true" />

		<!--输出级别在INFO和ERROR之间的日志-->
		<filter type="log4net.Filter.LevelRangeFilter">
			<param name="LevelMin" value="ALL" />
			<param name="LevelMax" value="FATAL" />
		</filter>
		<layout type="log4net.Layout.PatternLayout">
			<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
		</layout>
	</appender>
	<root>
		<priority value="ALL"/>
		<level value="ALL"/>
		<appender-ref ref="rollingAppender" />
	</root>
</log4net>

然后在
Program.cs中配置使用:

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging(loggingBuilder =>
                {
                    //配置 log4net配置文件读取
                    loggingBuilder.AddLog4Net("log4net.Config");
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

也可以在Startup.cs中配置使用
引入

using Microsoft.Extensions.Logging;

然后再到Configure方法中添加如下代码
在这里插入图片描述

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerfactory)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            //读取配置文件
            loggerfactory.AddLog4Net("log4net.Config");

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseSession();
            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }

最后使用_log4net

public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
            //构造函数中使用日志
            _logger.LogWarning("HomeController构造函数调用中...");
        }

再次启动项目
该目录下会生成配置文件中配置好路径文件
在这里插入图片描述
在这里插入图片描述

五. 项目的发布运行

1. 安装IIS管理器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择完后再点击确定
等待安装

2. 添加网站并运行

首先发布项目
在这里插入图片描述
在这里插入图片描述
然后打开IIS管理器
添加一个网站
在这里插入图片描述
在这里插入图片描述
点击浏览网站
在这里插入图片描述
如果浏览器出现以下错误

HRESULT 代码0x80070005
错误消息:
应用程序"应用程序名称"中的服务器错误
HTTP 错误 500.19 – 内部服务器错误
HRESULT:0x80070005
HRESULT 的说明
无法访问请求的页面,因为页面的相关配置数据无效。

原因是文件权限不够

解决方法之一

  • 右键【属性】打开刚刚发布所在路径的文件夹
  • 在这里插入图片描述
    添加一个用户如图所示 输入IIS_IUSRS点击添加
    在这里插入图片描述

然后重新启动IIS管理器
如果还是报错:

HRESULT 代码0x8007000d
错误消息:
应用程序"应用程序名称"中的服务器错误
HTTP 错误 500.19 – 内部服务器错误
HRESULT:0x8007000d
HRESULT 的说明
无法访问请求的页面,因为页面的相关配置数据无效。

原因是缺少 .NetCore 模块
官网下载地址:https://dotnet.microsoft.com/download/dotnet/3.1/runtime.

在这里插入图片描述
安装完成以后再次重启IIS管理器
点击浏览网站
界面就会成功正常显示了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值