7

在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 build 设置下正常工作。

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

谁能帮我调试问题?

4

3 回答 3

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
于 2017-05-24T13:12:56.057 回答
2

看来 iis 缺乏对该目录的访问权限。尝试复制 wwwroot 目录权限并将其分配给新站点。

RUN Set-Acl -Path c:\barometer -AclObject (Get-Acl -Path "C:\inetpub\wwwroot");
于 2017-04-19T11:21:55.890 回答
0

谁能帮我调试问题?

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

<configuration>
  <system.webServer>
    <httpErrors errorMode="Detailed" />
  </system.webServer>
</configuration>
于 2019-05-17T05:36:25.663 回答