Docker for Windows - 内部服务器错误

问题描述 投票:4回答:3

我在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

我的构建步骤如下:

docker build -t mvcbarometer .
docker run -d --name barometer mvcbarometer
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" barometer

一切都很好,但访问网站时出现以下错误:“您正在寻找的资源存在问题,无法显示。”

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

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

似乎docker在任何地方都没有记录任何错误,所以我有点坚持调试问题。我的其他(更基本的)项目与类似的docker构建设置一起工作正常。

我在某处看到docker与某些web.config元素有问题,但我找不到关于这个主题的任何真实文档。

任何人都可以帮我调试问题吗?

asp.net docker dockerfile http-status-code-500 docker-desktop
3个回答
4
投票

我终于找到了问题。我正在使用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

1
投票

似乎iis缺少对目录的访问权限。尝试复制wwwroot目录权限并将其分配给新站点。

RUN Set-Acl -Path c:\barometer -AclObject (Get-Acl -Path "C:\inetpub\wwwroot");

0
投票

任何人都可以帮我调试问题吗?

我在Docker中调试ASP.NET应用程序时遇到了同样的问题。我找到了答案here

<configuration>
  <system.webServer>
    <httpErrors errorMode="Detailed" />
  </system.webServer>
</configuration>
© www.soinside.com 2019 - 2024. All rights reserved.