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

时间:2013-04-25 12:06:53

标签: c# heroku

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

有没有人有这种解决方案的经验?

3 个答案:

答案 0 :(得分:3)

有一些Heroku构建包使用Mono来运行.NET和C#。这是我建立的那个:https://github.com/friism/heroku-buildpack-mono

答案 1 :(得分:0)

现在有一个使用project.json文件和kpm包管理器的官方http://localhost:8080(核心)应用程序。 Mono捆绑用于运行时执行。

使用示例:

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

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

答案 2 :(得分:0)

您可以创建一个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. 使用您的凭据
  3. 连接到Heroku的docker注册表
  4. 为您的图片创建新标记
  5. 将您的图片发布到您的Heroku应用
  6. 但是,如果您的计算机不支持Docker,您也可以使用CircleCI来运行这些命令。更多细节在这里:  https://blog.iamnguele.com/2018/02/21/continuous-delivery/