Eine der IIS-Konfigurationsoptionen besteht darin, wie viele Fehlerdetails an den Browser des Clients gesendet werden.
Es ist klar, warum man eigene Entwicklungsserver haben möchte und keine detaillierten Fehlermeldungen von den Produktionsservern an die Öffentlichkeit weitergeben möchte.
Wie richten Sie IIS ein, um die Fehler an bestimmte Hosts zu senden – beispielsweise an die IP-Adresse des Entwicklers? Ich möchte nicht per Remotedesktop auf den Server zugreifen, nur um zu sehen, was der eigentliche Fehler in der Anwendung ist.
Als Alternative denke ich daran, eine weitere Website auf demselben Server einzurichten und nur bestimmten Hosts Zugriff zu gewähren. Diese Website fungiert als Reverse-Proxy für die Website, von der ich detaillierte Fehler abrufen möchte, aber das scheint komplizierter zu sein, als es sein sollte.
Antwort1
Mit den Standardeinstellungen des IIS können Sie nur zwischen dem lokalen Server und einem beliebigen Remotecomputer unterscheiden. Es gibt keine Möglichkeit, bestimmten Remotecomputern detaillierte Fehler zuzuweisen, während dies bei anderen nicht der Fall ist.
Es gibt einen Trick, wie Sie dies trotzdem tun können.
Ihre Idee, eine zweite Site für die Entwicklung zu haben, ist schon goldrichtig. Idealerweise möchten Sie eine einzige Site mit all Ihren Anwendungsdateien, aber Sie möchten zwei verschiedene web.configs, um Ihre Fehlereinstellungen zu definieren.
Eine einzelne Site, aber zwei Konfigurationen sind nicht möglich, aber das IIS-Konfigurationssystem ist hierarchisch und Sie können die meisten Einstellungen an mehr als einem Ort speichern.
Erstellen Sie zwei Websites, die beide auf denselben physischen Standort verweisen.
Anstatt Ihre Einstellungen in die lokale Datei web.config einzufügen, fügen Sie sie <system.web><customErrors>
in die globale Datei web.config ein %systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
und <system.webServer><httpErrors>
umgeben %systemroot%\System32\inetsrv\config\applicationHost.config
Sie diese Einstellungen in beiden Fällen mit einem Standort-Tag wie dem folgenden:
<location path="ProdSite">
<system.web>
<customErrors mode="On" />
</system.web>
</location>
<location path="DevSite">
<system.web>
<customErrors mode="Off" />
</system.web>
</location>
Sie können hierfür weiterhin den IIS-Manager verwenden. Management
Öffnen Sie dazu im Abschnitt der Site die Configuration Editor
und navigieren Sie zu den Einstellungen, die Sie ändern möchten. Ändern Sie oben das From
Dropdown-Menü in Root Web.Config
oderApplicationHost.config
Es ist zwar immer noch nicht ganz einfach, aber Sie kommen mit einer einzigen Website aus.