【问题标题】:Releasing an WebAPI发布 WebAPI
【发布时间】:2022-10-24 13:27:29
【问题描述】:

所以我已经完成了我的应用程序,一切正常,并且已经过测试......但是现在呢?我对 C# 有点陌生,而且我从未处于现在的位置。 我有一个 Windows 服务器,它旨在不断运行此 API,那么如何从 VS 中获取此应用程序?通常我只会复制我的应用程序的发布版本的 .exe 并像这样运行它,但这似乎不起作用。

这听起来像是任何 C# 开发人员都应该知道的事情,但我在网上找不到任何东西,可能是因为“我搜索错了”,我真的很感激有人告诉我在哪里可以学习这部分开发:D

编辑:谢谢大家的建议,我觉得我遗漏了有关我的 API 目标的重要信息。这个 API 将在我的公司网络上本地运行,我的员工在我们所有的设备上都有一个很好的 VPN,而且他们是唯一会使用 API 的人,所以我觉得现在在本地运行它是要走的路。

【问题讨论】:

  • 嘿,欢迎来到 SO。您可能不知道并且您需要在搜索中使用的词是 DEPLOY。部署应用程序意味着将其“安装”到其实际预期的目标机器,而不是您开发它的机器。
  • 你在使用 Azure DevOps、GitHub、GitLab 还是类似的东西?

标签: c# asp.net rest asp.net-web-api release


【解决方案1】:

您正在寻找如何“发布”。这篇文章https://www.c-sharpcorner.com/UploadFile/3d39b4/publish-and-host-Asp-Net-web-api/ 将让您了解我所说的大部分内容。

在一个(非常)粗略的总结中:

  1. 发布您的代码,这将在源项目中创建您需要的“发布”文件夹
  2. 在服务器上的 IIS 中建立一个站点(我猜你可能也需要建立一个数据库)
  3. 将文件复制到服务器,并对 appsettings.json 进行所需的任何更改,以获取数据库连接字符串等内容。

【讨论】:

  • 我会注意到,当以 .Net core+ 为目标时,您可以发布一个自包含的包,其中包括网络服务器和其他所有内容。只需运行它即可启动服务器。但是,如果它应该“持续运行”,那么使用 IIS 是可行的方法,因为 IIS 包含的内容远不止内置的基本网络服务器。
【解决方案2】:

这涉及到很多事情,但仅凭您目前提供的信息,我建议reading this article 将您的 API 发布到您的服务器。

【讨论】:

    【解决方案3】:

    部署的主要问题是:

    • 你会做 API 版本控制吗?
    • 您将如何维护代码?
    • 更改代码时会发生什么,例如修复错误或添加新功能?
    • 当新代码不起作用并且您意外部署它时会发生什么情况,您如何回滚它?
    • 允许什么样的关机时间?
    • 您需要持续集成吗?
    • 您需要 docker 吗?
    • 您需要云吗?
    • 等...

    现在人们通常会编写自动部署代码,因此它并不像在 IIS 服务器上正常运行代码那么简单,但这取决于项目规模或您和您的老板对它的重视程度。

    REST API 版本控制:https://www.xmatters.com/blog/blog-four-rest-api-versioning-strategies/

    MsDeploy 到 IIS:https://learn.microsoft.com/en-us/aspnet/web-forms/overview/deployment/web-deployment-in-the-enterprise/deploying-web-packageshttps://dennistretyakov.com/setting-up-msdeploy-for-ci-cd-deployments-to-iis

    CI服务器:https://www.ahmetkucukoglu.com/en/how-to-publish-asp-net-core-application-by-using-jenkinshttps://www.alibabacloud.com/help/en/web-app-service/latest/08d871https://octopus.com/docs/guides/deploy-aspnet-app/to-iis/using-octopus-onprem-teamcity-builtin

    云:https://learn.microsoft.com/en-us/azure/devops-project/azure-devops-project-aspnet-core

    一些数据库版本控制工具:https://www.liquibase.org/http://dbdeploy.com/https://flywaydb.org/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 2013-05-13
      • 2018-09-10
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      相关资源
      最近更新 更多