.Net6多种启动方式和部署Windows详解

环境: NET6、 IIS、ASPNETCore部署IIS程序包、windows10

开发工具:VS2022

PS:虚拟机的安装有点问题,笔者会在另外的随笔里单独写一篇关于 .NET6部署至Linux

 

多种启动方式

  1基于开发工具启动

     VS中启动项目,可以选择项目名称直接启动,也可以选择以IIS Express的方式启动。两者的区别

 在于选择项目名称启动会带有一个控制台应用输出,比如要使用Console.WriteLine()方法输出某个参数.

而选择IIS Express是没有控制台应用输出的

 

2 命令行启动

      通过命令行启动后,我们可以在浏览器访问该地址(VSlaunchSettings.json配置信息里或者命令行里可以看到启动成功后的端口号等配置信息)

   1 dotnet run

      Win+r ,输入cmd 进入DOS命令行, cd 到项目的根目录下 使用dotnet  run运行

   2 dotnet dll

      Win+r ,输入cmd 进入DOS命令行, cd 到项目的DLL文件生成的位置 使用

  Dotnet dllName --urls=http://locahost:9912   //- -后面是参数=

 

静态文件丢失的问题

  通过命令行Dotnet dllName 启动项目后,我们会发现项目报错了,提示各种静态文件的丢失,暂未解决  建议使用dotnet run命令

 

 IIS部署

    1 IIS安装

      Windows10 系统 搜索启用或关闭Windows功能,勾选Internet Information Services的所有选项,确定后会自动安装

 

   2  ASPNETCore 部署IIS 程序包安装

地址:https: / dotnet.microsoft.com/download/dotnet/6.0

或者在浏览器中直接搜索 .net6 进入网页选择 Hosting Bundle 进行下载,然后安装程序包

       IIS管理界面里----模块(双击模块)--这里一般会有AspNetCoreModuleV2如果没有,点击配置本机模块将AspNetCoreModuleV2加入即可

   

    3  部署网站

1通过开发工具VS发布项目

2 IIS中新建网站,设置网站名称、端口号,指定物理路径为发布好的文件夹位置

4  IIS部署和通过命令行启动的区别

     使用dotnet run IIS部署后启动网站其实本质上并无区别, 查看IIS部署的网站文件可以看到对比于直接使用dotnet run命令行启动多了

一个web.config配置文件,在配置文件中handlers节点下有如下代码

 <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />

AspNetCoreModuleV2用来处理请求

aspNetCore 标签里有如下代码

<aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

从上述代码中我们可以看出实际上还是使用dotnet命令运行了dll,网站部署到IIS上只是做了个类似方向代理,最终还是命令行执行。

通过命令行启动可以直接访问网站是因为ASP.NETCORE内置了服务器

posted @ 2023-02-08 13:52  唐什么来着  阅读(1702)  评论(0编辑  收藏  举报