在 Heroku 平台上运行 Windows 服务/应用程序(C#)是否可行?

4

我正在考虑在Heroku平台上运行我的C#服务的可能性...

是否有任何人有使用这种解决方案的经验?

3个回答

3

1
你可以创建一个 Dockerfile 来生成在 Heroku 上可运行的 Docker 镜像。
FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
CMD ASPNETCORE_URLS=http://*:$PORT dotnet <YOUR_API_NAME>.dll

然后,您可以使用这些Docker命令直接将其发布到Heroku:

docker build -t aspnetapp <YOUR_API_NAME>
docker login --username=$HEROKU_USERNAME --password=$HEROKU_API_KEY registry.heroku.com
docker tag aspnetapp registry.heroku.com/$HEROKU_APP_NAME/web
docker push registry.heroku.com/$HEROKU_APP_NAME/web

以下是这些命令的顺序:
  1. 创建Docker镜像并在其中构建项目的发布版本
  2. 使用您的凭据连接到Heroku的docker注册表
  3. 为您的镜像创建一个新标签
  4. 将您的镜像发布到您的Heroku应用程序
如果您的计算机不支持Docker,则还可以使用CircleCI运行这些命令。更多详细信息请参见此处:https://www.codingnagger.com/2018/02/21/continuous-delivery/

0

现在有一个官方Heroku buildpack用于使用project.json文件和kpm包管理器构建ASP.NET 5(Core)应用程序。Mono被捆绑用于运行时执行。

示例用法:

$ heroku create --buildpack http://github.com/heroku/dotnet-buildpack.git
$ git push heroku master

如果您的应用程序具有project.json文件,则构建包将将其检测为ASP.NET 5。 如果要构建的源代码包含多个project.json文件,则可以使用 .deployment 文件或设置 $PROJECT 配置变量来控制构建哪一个。

这里有一个在GitHub上的Heroku ASP.NET 5演示应用程序:https://github.com/jincod/AspNet5DemoApp - wp78de

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接