欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Asp.net core利用IIS在windows上进行托管步骤详解

程序员文章站 2022-05-25 12:45:52
摘要 最近项目中,尝试使用asp.net core开发,在部署的时候,考虑现有硬件,只能部署在windows上,linux服务器暂时没有。下面话不多说了,来一起看看详细的...

摘要

最近项目中,尝试使用asp.net core开发,在部署的时候,考虑现有硬件,只能部署在windows上,linux服务器暂时没有。下面话不多说了,来一起看看详细的介绍吧。

部署注意事项

代码中启用iis和kestrel

public class program
 {
  public static void main(string[] args)
  {
   buildwebhost(args).run();
  }

  public static iwebhost buildwebhost(string[] args) =>
   webhost.createdefaultbuilder(args)
   .usekestrel()   
   .usecontentroot(directory.getcurrentdirectory())
   .useiisintegration()
   .usestartup<startup>()
   .useapplicationinsights()
   .build();
 }

在服务端安装

 .net core windows server 托管捆绑包

捆绑包可安装 .net core 运行时、.net core 库和 asp.net core 模块。 该模块创建 iis 与 kestrel 服务器之间的反向代理。 如果系统没有 internet 连接,请先获取并安装 microsoft visual c++ 2015 redistributable,再安装 .net core windows server 托管捆绑包。

重启系统,或从命令提示符处依次执行 net stop was /y 和 net start w3svc。 重新启动 iis 将选取安装程序对系统 path 所作的更改。

发布

使用vs发布或者使用命令,这里由于使用vs2017开发,就直接用vs发布了

在服务端新建站点

Asp.net core利用IIS在windows上进行托管步骤详解

修改应用池clr为no managed code

Asp.net core利用IIS在windows上进行托管步骤详解

可以下面新建子站点test

Asp.net core利用IIS在windows上进行托管步骤详解

确认进程模型标识拥有适当的权限。

如果将应用池的默认标识(“进程模型” > “标识”)从 applicationpoolidentity 更改为另一标识,请验证新标识拥有所需的权限,可访问应用的文件夹、数据库和其他所需资源。例如,应用池需要对文件夹的读取和写入权限,以便应用在其中读取和写入文件。

 常见错误

如果通过ip和端口访问,报500错误,但在服务器上 通过dotnet \xxxxx.dll可以启动kestrel,并可以通过http:\\localhost:5000进行访问,一般可以通过修改站点目录权限进行解决。至少可以读写的权限。

Asp.net core利用IIS在windows上进行托管步骤详解

其他错误,可以参考

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。