2

Ich habe ein Problem, wenn eine meiner Lösungen in Docker für Windows ausgeführt wird. Ich benutze das folgende dockerfile:Docker für Windows - Interner Server Fehler

# 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 

Meine Build Schritte sind wie folgt:

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

Alles baut in Ordnung, aber ich bekomme die folgende Fehlermeldung, wenn Sie die Website besuchen: „Es gibt ein Problem mit der Ressource, nach der Sie suchen, und sie kann nicht angezeigt werden. "

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

Aus irgendeinem Grunde, den ich nicht die klassische gelbe Fehlerseite bekommen, das angezeigt wird, wenn sie durch Visual Studio debuggen, obwohl ich die gleiche Konfiguration verwenden.

Es scheint nicht wie Docker irgendwo Fehler protokolliert, so bin ich irgendwie bei der Fehlersuche das Problem fest. Meine anderen (einfacher) Projekte funktionieren gut mit einem ähnlichen Docker-Build-Setup.

Ich habe irgendwo gelesen, dass Docker Probleme mit bestimmten web.config-Elementen hat, aber ich kann keine echte Dokumentation zu diesem Thema finden.

Könnte mir jemand bei der Fehlersuche helfen?

Antwort

2

Ich endlich das Problem gefunden. Ich habe die URL Rewrite 2.0-Funktionalität verwendet, aber vergessen, sie im Docker-Image zu installieren.

Hinzufügen der folgenden meiner Docker-Datei das Problem gelöst:

# 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

Es scheint, dass IIS Zugriffsberechtigungen für das Verzeichnis fehlt. Versuchen Sie, wwwroot-Verzeichnisberechtigungen zu kopieren und der neuen Site zuzuweisen.

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

Die Zugabe von "RUN Set-Acl -Path c: \ Barometer -AclObject (Get-Acl -Path" C: \ inetpub \ wwwroot ");" Die Docker-Datei hat nichts geändert. Wie im ursprünglichen Beitrag erwähnt: "Meine anderen (einfacher) Projekte funktioniert gut mit einem ähnlichen Docker Build-Setup.", Warum nehme ich an, dass alle Berechtigungen für den Ordner korrekt sein müssen. – antontj