Net 5.0 WebApi 发布到IIS上
Win10本地安装IIS
控制面板→程序→启用或关闭windows功能
发布项目
-
右击项目——发布
-
选择自己需要发布的内容(这里选择文件夹):
-
选择文件夹存放位置:默认选择存放在项目中bin\Release\net5.0\publish\;
-
配置发布的一些设置:
-
点击发布按钮
配置IIS环境
- 打开cmd
- dotnet --info 查看本地net安装信息
- 安装与自己发布net core 版本运行时,这里我使用的是net 5.0
.NET Core Hosting Bundle :.NET Core 托管捆绑包是 .NET Core 运行时和 ASP.NET Core 模块的安装程序。 该捆绑包允许 ASP.NET Core 应用通过 IIS 运行。 - 安装之后需要重启IIS服务(这里使用命令提示符)
4.1 打开cmd命令提示符
4.2 net stop iisadmin /y (停止IIS服务)
4.3 net start iisadmin (启动IIS服务)
4.4 net start w3svc (输入Net命令启动IIS服务成功)
打开 Internet Information Services(IIS)管理器
- 添加引用程序池
托管代码与非托管代码的区别:
托管的代码就是把有关内存管理(内存申请,内存释放,垃圾回收之类的)全部都是.NET的CLR来管理,就是说使用托管的代码把底层的一些操作都封装起来了,不能直接进行内存的读取之类的和硬件相关的操作,优点就是比较安全,不会出现诸如内存泄露之类的问题,缺点也很明显,不能直接读取内存,性能上会有损失,使用起来有时也不够灵活。
非托管的刚好相反,可以直接进行硬件操作,性能比较高,但是对开发人员的要求也比较高。
最直观的就是C#不推荐使用指针,而C++就可以使用指针来直接读取内存; C#使用垃圾回收,C++要手动的释放对象……
- 对刚刚添加的应用程序池进行高级设置
IIS标识
本地系统(Local System): 具有高特权且有权访问网络资源的受信任帐户。
网络服务(Network Service): 用于运行标准最小特权服务的受限或受限服务帐户。 此帐户的权限比本地系统帐户少。 此帐户有权访问网络资源。
本地服务(Local Service): 与网络服务类似且旨在运行标准最小特权服务的受限或受限服务帐户。 此帐户无法访问网络资源。
ApplicationPoolIdentity: 创建新的 应用程序池 时,IIS 会创建一个虚拟帐户,该帐户的名称为新 应用程序池并且在此帐户下运行 应用程序池 工作进程。 这也是最小特权帐户。
自定义帐户(Custom account): 除了这些内置帐户之外,您还可以通过指定用户名和密码来使用自定义帐户。
- 添加网站
4.进行测试
相关资料
.NET Core Hosting Bundle : https://docs.microsoft.com/en-au/aspnet/core/host-and-deploy/iis/hosting-bundle?view=aspnetcore-6.0
IIS 标识:https://docs.microsoft.com/zh-cn/troubleshoot/developer/webapps/iis/www-authentication-authorization/understanding-identities
托管代码和非托管代码的区别:https://www.cnblogs.com/zhengzc/p/11235308.html