Ein Abschnitt, der als allowDefinition = 'MachineToApplication' über die Anwendungsebene hinaus registriert wurde

8

Nachdem ich die Assembly von System.Data.Entity zu meiner Webkonfiguration hinzugefügt habe, ist dieser Fehler aufgetreten: Es ist ein Fehler, einen Abschnitt zu verwenden, der als allowDefinition = 'MachineToApplication' über die Anwendungsebene hinaus registriert ist. Dieser Fehler kann durch ein virtuelles Verzeichnis verursacht werden, das nicht als Anwendung in IIS konfiguriert ist.

Ich habe die Ordner obj und bin gelöscht, ich habe die Zeile authentication="windows" entfernt, habe versucht, sie wieder zu öffnen, da einige gesagt haben, dass es funktioniert, ich habe überprüft, dass es nur 1 web.config im Hauptordner (Entity Framework) gibt - Ordner für Formulare, Modell, DAL und BLL) ...

Aus welchen anderen Gründen wird dies geschehen? Ich suchte überall und es ist im Grunde die oben genannten Gründe, die ich fand ....

Das ist meine web.config, wenn es einen Unterschied macht:

%Vor%

Was kann ich tun, um das zu lösen?

    
Kerieks 24.04.2013, 08:30
quelle

4 Antworten

23

Grundsätzlich bedeutet der Fehler, dass in einem Ihrer Unterordner eine web.config-Datei mit einem Konfigurationselement vorhanden ist, das nicht vorhanden sein sollte. Ist das deine root / only Web Konfigurationsdatei? Wenn nicht, könntest du diese bitte auch posten?

Auch klingt es dumm, aber ich würde überprüfen, dass Sie die Website selbst in Ihrer IDE öffnen (und nicht fälschlicherweise einen übergeordneten Ordner öffnen) Ich habe gesehen, wie die Leute ein paar Stunden damit verbringen, diesen Fehler zu debuggen die ganze Zeit waren sie nicht im richtigen Verzeichnis.

Hier finden Sie eine gute Erklärung dazu, wie die web.config-Hierarchie für ASP eingerichtet ist, um zu veranschaulichen, wie dies funktioniert: Ссылка

    
Chris Noreikis 24.04.2013, 16:26
quelle
1

Anscheinend gab es zwei web.config-Dateien in meiner Lösung. Ich benutze MVC4 und es gab eine andere Konfigurationsdatei unter Ansichten und ich machte die Änderung in der falschen Datei. Fixed dort half mir.

Sie können jedoch die Standardumleitung / route in der Datei global.asax ändern.

    
Gautam Beri 05.06.2014 19:30
quelle
0

Dieses Problem tritt am häufigsten auf, wenn Sie die Website in Visual Studio öffnen, aber versehentlich den übergeordneten Ordner des Stammordners öffnen. Angenommen, Sie haben eine Website unter C: \ MyProjects \ Website1, wobei der Ordner Website1 der Stamm der Website ist. Wenn Sie diese Website von Visual Studio öffnen, werden Sie aufgefordert, den Stammordner der Website anzugeben. Wählen Sie unbedingt den Ordner "Website1". Wenn Sie versehentlich den Ordner MyProjects auswählen, befindet sich die Datei Web.config im Ordner Website1 jetzt in einem der Unterordner der Website. Da diese Web.config-Datei das Element neben anderen Einstellungen auf Anwendungsebene enthält, erhalten Sie den obigen Fehler.

Die Lösung dieses Fehlers (in den meisten Fällen) besteht darin, Ihr Projekt zu schließen und es erneut in Visual Studio zu öffnen. Achten Sie darauf, dass Sie den entsprechenden Ordner auswählen.

Glückliche Programmierung!

    
Rae Lee 04.08.2015 06:01
quelle
0

Chris Noreikis Antwort ist in der Tat richtig. Aber ein wichtiges Detail fehlt. Wenn Sie das Projekt / die Lösung aus irgendeinem Grund in einer anderen VS-Version als ursprünglich erstellt öffnen, wird VS versuchen, zu migrieren. Gelegentlich erstellt VS während dieser Migration einen Ordner namens "backup" oder "backup _ {#}". Auch wenn Sie die ausstehenden Änderungen rückgängig machen, bleiben diese Verzeichnisse bestehen.

Das Vorhandensein dieser Verzeichnisse ist in einigen Fällen (wie meiner) die Ursache dieses Fehlers. Durch das Entfernen dieser Verzeichnisse wird das Problem behoben.

Meine Hoffnung ist, dass dies jemandem die unzähligen Stunden erspart, die ich bei diesem Problem verloren habe.

    
pimbrouwers 06.10.2015 18:33
quelle