Docker for windows - 内部服务器错误

ant*_*ntj 7 asp.net http-status-code-500 docker dockerfile docker-desktop

Docker Desktop for Windows 中运行我的解决方案之一时遇到问题。我使用以下 dockerfile:

# escape=`
FROM microsoft/iis
SHELL ["powershell", "-command"]
# Install ASP.NET
RUN Install-WindowsFeature NET-Framework-45-ASPNET; `  
    Install-WindowsFeature Web-Asp-Net45
# Configure website
EXPOSE 8000  
RUN Remove-Website -Name 'Default Web Site'; `  
md c:\barometer; `
New-Website -Name 'barometer' `
            -Port 8000 -PhysicalPath 'c:\barometer' `
            -ApplicationPool '.NET v4.5'
COPY PublishOutput c:\barometer
Run Code Online (Sandbox Code Playgroud)

我的构建步骤如下:

docker build -t mvcbarometer .
docker run -d --name barometer mvcbarometer
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" barometer
Run Code Online (Sandbox Code Playgroud)

一切正常,但在访问该站点时出现以下错误:“您要查找的资源有问题,无法显示。”

- http://imgur.com/a/areF8

出于某种原因,即使我使用相同的配置,我也无法获得通过 Visual Studio 调试时显示的经典黄色错误页面。

docker 似乎没有在任何地方记录任何错误,所以我有点困在调试问题上。我的其他(更基本的)项目在类似的 docker 构建设置下运行良好。

我在某处读到 docker 对某些 web.config 元素有问题,但我找不到有关该主题的任何真实文档。

有人可以帮我调试问题吗?

ant*_*ntj 7

我终于找到了问题所在。我正在使用 url rewrite 2.0 功能,但忘记将其安装在 docker 映像中。

将以下内容添加到我的 docker 文件中解决了问题:

# Install Url Rewrite
ADD https://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64.msi /install/rewrite_amd64.msi
RUN msiexec.exe /i c:\install\rewrite_amd64.msi /passive
Run Code Online (Sandbox Code Playgroud)

  • 你是如何调试问题的?你在某处找到日志了吗? (5认同)