Asp.Net Core 6.0 Mvc发布并部署IIS项目记录

前言

以前研究PythonDjango,感脚有点难受,自己熟悉的语言是C#,当前现在摸到门槛之后感觉还是Python简单,这只是个人喜好,不喜勿喷,第一次开发asp.net core mvc 项目,对整个开发流程以及发布流程都是懵逼状态,因为某些原因,决定还是做一个web端个人展示页面,刚好拿来练手,将相关踩坑记录一下。

项目概要

此次目的是为了展示之前做过的项目视频,所以功能以视频播放为主。以下是涉及到的相关知识点:

  1. 读取配置文件json文件 ,通过配置文件模拟数据库。
  2. 视频播放功能 通过配置文件动态生成多个按钮 按钮监听对视频播放器地址赋值。
  3. 发布 winSeverIIS部署 功能,使用window服务器winsever2022 IIS部署。

MVC asp.net Core web 端工程创建

  1. 打开VS2022创建新项目。
  2. 模板选择ASP.NET Core Web 应用。
  3. 填写项目名称以及存放路径.
  4. 框架选择.Net 6.0,身份验证:无,配置Https勾选,后面的不用勾选(都是可选可不选,不一定非要勾选) ,然后创建。

工程目录

项目更改

  1. NuGet包管理器安装MVC,然后Program.cs文件更改为以下代码:
using myweb.Models;
using System.IO;
using Microsoft.Extensions.FileProviders;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddMvcCore();
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddSingleton<IVideoRespository, MockVideoRepository>();
var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    
    
    app.UseExceptionHandler("/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();
}

app.UseHttpsRedirection();

app.UseStaticFiles(new StaticFileOptions()
{
    
    
	FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")) //执行文件下的wwwroot文件夹
}); 

app.UseRouting();

app.UseAuthorization();

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

app.Run();

  1. MVC对应的模板文件夹创建,Controller右击可以创建控制器选择新建MVC控制器,Models新建模型类。Views视图新建视图类文件并把原来Page文件夹下的所有文件移动到Views视图下,这个个人喜好不移动也没事儿。
    在这里插入图片描述

  2. 创建Index.cshtml视图。以下参考代码:

@using myweb.Models;
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@  
@*@model myweb.Models.VideoInfo*@
@model List<VideoInfo>
@{
    
    
	ViewData["Title"] = "个人案例展示";
}
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">

<link href="~/css/stylesheet.css" rel="stylesheet" />

<body oncontextmenu='return false'>
	<div class="s1" id="button-container">
		@for (int i = 0; i < Model.Count; i++)
		{
    
    
					  <button class="btn01" style="margin = 50" onclick="changeVideoUrl(@i)">@(Model[i]._Name)</button>
		} 
</div>

<div  class="s2" id="video-container">
	  <video id="video-player" width="98%" height="55.125%" controls="controls" controlslist="nodownload" autoplay="autoplay">
			<source src="" type="video/mp4">
		</video>
</div> 
</body>

 

<script>
	document.oncontextmenu=function()
	{
    
    
	        event.returnValue=false;
	}
	function changeVideoUrl(index) {
    
    
			// 获取视频播放器和链接列表元素
			var videoPlayer = document.getElementById("video-player");
			var videoUrlsList = @Html.Raw(Json.Serialize(Model));

			// 更改视频链接
			videoPlayer.src = videoUrlsList[index]._Path;
		}
</script> 

打包发布

  1. 项目右击发布:选择web服务器iis => web 部署
    在这里插入图片描述
  2. 发布属性填写:
    在这里插入图片描述
  3. 服务器站点建立,登录服务器,打开IIS,没有安装的自行百度。另外一篇播放中也有介绍。在网站下面新建站点。1 就是站点名称,2 选择应用程序池,没有适用的在左边应用程序池中新建一个,选择无托管代码,管道模式是集成。3 新建一个网站存放的路径。4 是端口。
    在这里插入图片描述
  4. 服务器下载安装WebDeploy微软的部署工具,安装成功后,重启Web Management Service服务,然后打开win+r输入:services.msc 查看是否有 Web 帐户管理器 这个服务,如有说明安装成功,将web management service和Web 帐户管理器 服务重启,右击站点的部署,默认填写确认即可(感觉这一步有点多余)。
  5. 做完上面这些操作后回到工程点击 第2点中的连接测试。能正常连接就直接打包发布把,发布成功后回到服务器重新相关服务,稍后就可以正常访问了。

遇到的问题

  1. HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效
    解决方案:下载.net 捆绑包,并安装。
  2. HTTP 错误 403.14 - Forbidden
    解决方案:
    1:打开IIS管理工具,选择网站;右边功能视图中找到 目录浏览 选择启用。
    2:功能视图中选择默认文档,添加我们的默认文档即可,后缀为.aspx
  3. 500-内部服务器错误
    解决方案:目录下增加:web.config文件写下以下代码; 然后文件夹目录设置权限:安全,添加everyone 权限为完全控制。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true" />
        <defaultDocument>
            <files>
                <clear />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="Default.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
                <add value="default.aspx" />
            </files>
        </defaultDocument>
        <directoryBrowse enabled="true" />
    </system.webServer>
    <system.web>
        <customErrors mode="Off" />
        <compilation debug="true" />
    </system.web>
</configuration>
<!--ProjectGuid: cfa62a1f-c5f6-43f8-bcbe-04068e40b803-->

猜你喜欢

转载自blog.csdn.net/qq_41088607/article/details/130238800
今日推荐