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

是否可以在heroku平台上运行windows服务/应用程序(c#)?,c#,heroku,C#,Heroku,我正在检查在Heroku平台上运行我的C#服务的可能性 有人有过这种解决方案的经验吗?有一些Heroku BuildPack可以使用Mono运行.NET和C。下面是我构建的一个:现在有一个官方(核心)应用程序使用project.json文件和kpm包管理器。Mono是为运行时执行而绑定的 用法示例: $ heroku create --buildpack http://github.com/heroku/dotnet-buildpack.git $ git push heroku master

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


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

有一些Heroku BuildPack可以使用Mono运行.NET和C。下面是我构建的一个:

现在有一个官方(核心)应用程序使用project.json文件和kpm包管理器。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 config变量来控制生成哪个文件。

可以创建Docker文件以生成可在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
来自microsoft/aspnetcore内部版本:2.0作为内部版本环境
WORKDIR/app
#复制csproj并恢复为不同的层
复制*.csproj/
运行dotnet还原
#复制所有其他内容并构建
复制/
运行dotnet publish-c Release-o out
#构建运行时映像
来自microsoft/aspnetcore:2.0
WORKDIR/app
复制--from=build env/app/out。
CMD ASPNETCORE_url=http://*:$PORT dotnet.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
docker build-t aspnetapp
docker登录--用户名=$HEROKU\u用户名--密码=$HEROKU\u API\u KEY registry.HEROKU.com
docker标签aspnetapp registry.heroku.com/$heroku\u APP\u NAME/web
docker push registry.heroku.com/$heroku\u APP\u NAME/web
按照这些命令的顺序:

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
  • 创建Docker映像并在其中生成项目的版本
  • 使用您的凭据连接到Heroku的docker注册表
  • 为图像创建新标记
  • 将您的图像发布到Heroku应用程序
  • 但是,如果您的计算机不支持Docker,您也可以使用CircleCI来运行这些命令。详情如下:

    下面是GitHub上的Heroku ASP.NET 5演示应用程序: