Ich entwickle eine Webanwendung und führe sie mit IIS aus. Meine Anwendung ist ein Dateiserver. Ich muss Dateien im Webbrowser visualisieren und habe einige Probleme beim Betrachten einiger Dateien oder Verzeichnisse.
Ich kann z. B. keine Dateien mit der Erweiterung .cs
oder den Inhalt von Verzeichnissen namens bin
anzeigen. Der Webserver gibt eine 404 für diese URLs zurück:
Ich vermute, dass dies eine Art von Schutz ist, den IIS hat. Meine Fragen sind:
Und die wichtigste Frage für mich:
Nun,
Schließlich musste ich die IIS-Einstellungen ändern, um das requestFiltering zu überschreiben :
%Vor%Und dann habe ich die folgende Konfiguration in meiner Web.config verwendet: Beachten Sie, dass jetzt alle Dateien auf dem Webserver nicht geschützt sind . Sie müssen Ihre Regeln einrichten, um Ihr bin-Verzeichnis und auch Ihre Code-Dateien oder was immer Sie wollen zu schützen.
%Vor%Beim Installieren von .NET Framework und Registrieren von ASP.NET wird IIS standardmäßig angewiesen, diese Dateien nicht zu liefern. Wenn Sie WIRKLICH darum herum möchten, müssen Sie den Abschnitt Anforderungsfilterung in IIS ändern.
Das folgende Beispiel zeigt, wie Sie .cs Erweiterungen aktivieren:
%Vor%Dies ist eine Sicherheitsmaßnahme, da asp.net auf dem System installiert ist.
Alle Anfragen mit / bin in der URL sind abgelehnt und einen Fehler 404 (IIS 6.0)
Dies tritt auf, wenn IIS 6.0 und ASP.NET beide installiert sind. In Ordnung eine aktivere Haltung einnehmen gegen böswillige Benutzer und Angreifer, der ASP.NET ISAPI-Filter, aspnet_filter.dll, blockiert eingehende Anfrage enthält / bin in der URL. Dieses Verhalten tritt serverweit auf, unabhängig davon, ob die Anfrage für statischer oder dynamischer Inhalt.
Die bevorzugte Lösung für dieses Problem ist Ändern Sie den Pfad zum Inhalt auf dem Server, so dass / bin nicht notwendig ist in jeder Anfrage.
Wenn die Inhalts-URL kann nicht geändert werden, eine Alternative Lösung ist, einen Registrierungsschlüssel zu setzen stoppt den ASP .NET ISAPI-Filter von Filtern von Anfragen mit / bin in die URL Dies ist ein Server-weit Einstellung.
Besser, alle / bin Ordner zu vermeiden, als das auf Ihrem Server zu aktivieren
Um Server-CS-Dateien zu ermöglichen, versuchen Sie diesen Serverfault-Artikel Ссылка
Da es sich um einen webconfig-Fix handelt, können Sie ihn wie von Ihnen gewünscht pro Seite anwenden.
Ich würde vorschlagen, dass Sie etwas falsch machen. Sie möchten nicht, dass IIS Ihre Dateien aus verschiedenen Gründen direkt von der Festplatte aus bereitstellt (z. B. wird eine .html- oder .xml-Datei dann erneut aufgeteilt, statt den Inhalt herunterzuladen).
Sie möchten, dass Ihr Code die Dateien an den Benutzer sendet, anstatt dass IIS dies tut. Dadurch werden die Einschränkungen von IIS umgangen (da Sie den Code senden, nicht das) und die Einschränkungen von IIS für die Anwendungsordnerstruktur beibehalten werden.
Diese Dateien werden aus Sicherheitsgründen gefiltert. Wenn ich beispielsweise weiß, dass Ihre Website Ссылка eine Seite enthält, kann ich dies möglicherweise tun Laden Sie den Code für diese Seite herunter, indem Sie in meinem Browser Ссылка eingeben. Dasselbe gilt für den Ordner bin.
Wie versuchen Sie, diese Dateien auf Ihrer eigenen Benutzeroberfläche anzuzeigen oder das Durchsuchen von Verzeichnissen zu aktivieren?
Tags und Links asp.net-mvc html iis asp.net-mvc-2