【发布时间】:2019-01-04 05:40:57
【问题描述】:
我正在使用 Docker Windows Container 和 Visual Studio,我可以按 F5 并运行一个简单的“Hello World”控制器。我点击了/api/helloworld,一切正常,花花公子 - 我看到了 Hello World。
现在,当我在 Azure 容器实例上部署它时,一切看起来都很好。但是当我点击相同的网址/api/helloworld 时,它会给我一条 404 消息。
我是否需要为匿名网络用户授予任何读取权限?
azure-pipelines.yml
# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4
trigger:
- master
pool:
vmImage: 'win1803'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@0
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
docker-compose.yml
version: '3.4'
services:
dockermicroservice:
image: ${DOCKER_REGISTRY-}dockermicroservice
build:
context: .\DockerMicroservice
dockerfile: Dockerfile
Dockerfile
FROM microsoft/aspnet:4.7.2-windowsservercore-1803
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} .
HelloWorldController.cs
using System.Web.Http;
namespace DockerMicroservice.Controllers
{
public class HelloWorldController : ApiController
{
[HttpGet]
public IHttpActionResult Get()
{
return Ok("Hello World");
}
}
}
从容器注册表运行实例
【问题讨论】:
-
您可以查看 ACI 日志。而且我没有看到您在 Dockerfile 中公开端口。也许是问题所在。
-
有什么更新吗?上述建议有帮助吗?
-
我添加了端口,但这并没有解决问题。不知道如何设置日志,以便我可以看到它在哪里下降。
标签: azure docker containers