ASP.NET Core部署和迁移

时间:2018-10-01 06:30:21

标签: iis asp.net-core identityserver4 ef-core-2.1

在过去三个月中,我使用 ASP.NET Core 2.1 EF Core 2.1 IdentityServer4 2 开发了一个复杂的Web应用程序。

我的应用程序由三个单独的Web应用程序组成:sts项目,数据api和mvc前端。为了存储数据,有两个数据库: identity-db (用于存储用户,关系,配置等)和 data-db 。他们都使用代码优先方法进行ef迁移。

现在是问题:
我如何(手动或自动)将该项目部署到 安装了IIS的Windows Server? iis网站必须是 配置为在没有子域的单个域下运行。

其他信息:我使用的是Visual Studio 2017,这是一个自托管的GitLab(免费),带有Windows Server 2016作为构建计算机。我并没有真正使用GitLab的CI / CD功能,因为我根本没有时间真正了解它。据我所知,码头工人也可以选择。

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

因为这是一个非常笼统的问题,所以我将给出一个非常笼统的答案。

在您选择的Windows服务器中安装IIS,或者如果已经安装IIS,则继续下一步。

通过“角色和功能”安装所需的模块(确保还安装依赖项,例如.Net 4.7或其他)。

创建一个网站并为该内容指定一个文件夹(最好在与系统驱动器不同的驱动器上)。 (例如,可以通过右键单击IIS> Sites文件夹来完成此操作)

在内容文件夹中部署您的应用程序或网站。基本上将文件和文件夹复制到指定的文件夹。

继续配置AppPool,运行appPool的用户,绑定(基本上是主机名和端口,如果需要,还可以是https绑定和证书)。

配置身份验证和授权。如果您网络中的人将使用其通常的AD帐户登录该应用程序,则基本上选择Windows身份验证。否则,您可以举个例子。如果要限制对某些AD组或用户的访问,请使用授权规则进行。

请确保运行应用程序池的用户具有对内容文件夹的权限,如果还使用Windows身份验证,则“计算机用户”在那里需要权限(至少已读取)。还要检查是否需要文件夹的IIS_IUSRS权限(如果使用AppPoolIdentity运行池)

尝试该站点,看看它是否抛出任何HTTP状态代码,然后从那里继续。

对其他2个站点执行相同操作。

如果任何应用程序具有连接字符串,则服务器上将需要相应的数据库驱动程序。设置驱动程序和连接字符串后,对数据库连接进行故障排除基本上是telnet和FW规则。

您可能想在IIS中“转换为应用程序”,但这是您的选择,并且AFAIK取决于代码。

基本上就是这样,我知道它不是很精确,但是至少您有一些提示。