2

在Docker for Windows中运行我的一个解决方案时遇到问题。 我用下面的dockerfile:适用于Windows的Docker - 内部服务器错误

# 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有某些web.config元素存在问题,但我找不到任何有关该主题的真实文档。

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

回答

2

我终于找到了问题。 我正在使用网址重写2.0功能,但忘记将其安装在泊坞窗图像中。

添加以下到我的搬运工文件解决了这个问题:

# 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 
0

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

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

添加的 “RUN设置的ACL -Path C:\晴雨表-AclObject(获取的ACL -Path” C:\的Inetpub \ wwwroot文件“);”到码头文件没有改变。 正如原来的文章所述:“我的其他(更基本)项目工作正常,与类似的码头建设安装。”,为什么我认为该文件夹的所有权限必须正确。 – antontj