Asp.net core使用IIS在windows上进行托管

摘要

最近项目中,尝试使用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发布了

在服务端新建站点

修改应用池CLR为No Managed Code

可以下面新建子站点test

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

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

常见错误

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

其他错误,可以参考

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/troubleshoot

原文地址:https://www.cnblogs.com/wolf-sun/p/8583772.html

时间: 2024-07-31 13:01:33

Asp.net core使用IIS在windows上进行托管的相关文章

Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用. 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio 本教程涵盖以下主题: 在 Windows Server 上安装.NET Core Hosting Bundle. 在 IIS 管理器中创建 IIS 站点. 部署 ASP.NET Cor

【先定一个小目标】Asp.net Core 在IIS上的托管运行

1.安装 .NET Core Framework 下载.net core地址:官网地址 2.Install IIS 在控制面板->程序与功能->Internet Infomation Services 3.站点部署 实例: https://github.com/aspnet/mvc 在IIS管理器,新建站点->物理路径Path:为项目的根目录. 网站绑定: 在host文件中添加127.0.0.1 mvcsanbox.cn,刷新dns缓存:cmd->ipconfig /flushdn

使用 IIS 在 Windows 上托管 ASP.NET Core2.0

准备: 操作系统:Windows Server 2008 R2 或更高版本 开发环境:VS2017 第一步:新建项目ASP.NET Core Web应用程序 在 Visual Studio 中,选择“文件”>“新建”>“项目”. 在新建项目对话框的左侧窗格选择“.NET CORE”, 在中间窗格中,点击“ASP.NET Core Web 应用程序(.NET Core)” 修改自己的项目命名及存储位置 点击确定 在版本选择器下拉框中选择“ASP.NET Core 2.0”选择“Web 应用程序(

ASP.NET Core使用TopShelf部署Windows服务

asp.net core很大的方便了跨平台的开发者,linux的开发者可以使用apache和nginx来做反向代理,windows上可以用IIS进行反向代理. 反向代理可以提供很多特性,固然很好.但是还有复杂性,我们也可以使用windows service来直接启动kestrel. asp.net core官方网站提供了一种基于windows服务部署的方法:在 Windows 服务中托管 ASP.NET Core 这种方式需要修改代码,然后部署的时候,使用命令行创建.安装服务,然后再启动. 感觉

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core WebApi项目,使用默认的Values控制器,这里使用Visual Studio 2019创建一个ASP.NET Core 3.1d的WebApi项目. 创建新项目的时候选项ASP.NET Core Web应用程序,如下图所示: 配置新项目界面界面设置项目名称和位置,如下图所示: 选择.Net Cor

Docker打包 Asp.Net Core应用,在CentOS上运行

本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们可以轻松实现应用的持续集成部署,一次打包,到处运行. 开篇借用百科上对docker的介绍. Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 方便大家学习: http://www.doc

ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述

为了方便演示,以 .NET Core 控制台应用程序讲解. 我们新建一个控制台应用程序,安装 "Newtonsoft.Json" Nuget 包,然后右键点击该项目,选择"发布": 我们依次选择"文件",设置好路径,最后点击创建配置文件,界面变成了下面这样: 然后我们点击"配置" 那么,问题来了."部署模式" 里面有两个选项: 1.当选择框架依赖时,"目标运行时"有:"可移植&

ASP.Net Core MVC 网站在Windows服务器跑步起来

1.vs远程发布到服务器,浏览器访问,报错502 2.打开错误提示提供的网址参考 3.安装runtime,sdk,Hosting Bundle Installer,其他操作 .....发现并没有什么用(后续操作发现还是环境问题...这里重点记一下,有空再研究一下) 4.打开windos日志,发现有错误提示 ··· Application 'MACHINE/WEBROOT/APPHOST/MYWEB' with physical root 'C:\IIS\MyWeb' failed to star

ASP.NET CORE 发布IIS存在某些问题的解决方式

appsettings.json 配置确保程序能正常连接数据库 "ConnectionStrings": { "XXXDb": "Data Source=数据库\\实例名称;Initial Catalog=数据库命名;Persist Security Info=True;User ID=sa;Password=密码;MultipleActiveResultSets=true" } 发布 文件系统选择路径 安装IIS 并且安装 DotNetCore