Windows Server 2012 R2 / IIS 8.5
Wenn ich in IIS > Sites > Default Website
einer (ASP-)Anwendung die Localhost-URL besuche, wird statt der Anzeige der Seite eine Datei heruntergeladen.
Die Dateien befinden sich unter C:\inetpub\wwwroot\rooms
und in diesem Ordner befinden sich verschiedene .dll
Dateien, Ordner und ein web.config
. Der Inhalt web.config
ist:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
<handlers accessPolicy="Read, Execute, Script">
<remove name="ISAPI-dll" />
<add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" scriptProcessor="C:\inetpub\wwwroot\rooms\rooms.dll" resourceType="File" requireAccess="Execute" allowPathInfo="true" preCondition="bitness32" />
</handlers>
<defaultDocument enabled="true">
<files>
<add value="rooms.dll" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Default Document
Ich habe in IIS die entsprechende Datei eingestellt .dll
, diese wird heruntergeladen, wenn ich besuchelocalhost/rooms
Ich habe den IIS-Server und die Site selbst ein paar Mal neu gestartet. Auf demselben Server werden noch andere Sites gehostet, die wie erwartet funktionieren und über eine ähnliche URL erreichbar sind. Ich habe auch verschiedene Browser ausprobiert.
Ich habe die Windows-Funktionen und -Rollen überprüft und kann bestätigen, dass ASP.NET 3.5
und ASP.NET 4.5
als angezeigt werden (Installed)
, wie das ISAPI Extensions
und ist ISAPI Filters
.
Ich habe sehr wenig Erfahrung mit IIS oder ASP.
- Warum wird die Anwendung heruntergeladen und nicht angezeigt?
- Wie kann ich mit der Fehlerbehebung beginnen?
Antwort1
Bei uns war es ein Bindungsproblem. Wenn Sie IIS öffnen, mit der rechten Maustaste auf die Website klicken und die Bindungseigenschaften ansehen, werden alle Namen aufgelistet und es wird angegeben, wie die Dateien behandelt werden.
Es gab zwei Einträge, die wir löschen mussten:
type host port binding
------------------------------------------------
net.msmq localhost*
msmq.formatname localhost*
Die verbleibende Bindung, die bleiben musste, war:
type host port binding
------------------------------------------------
http 80
Wenn der Hostname leer ist, bedeutet dies, dass er mit allem übereinstimmt. Da jedoch die beiden Einträge vorhanden waren und zuerst Abfragen an den lokalen Host abfingen, war es nie möglich, die Anforderung als Typ http zu verarbeiten.