Das Webanwendungsprojekt […] ist für die Verwendung von IIS konfiguriert. Der Webserver […] konnte nicht gefunden werden.

285

Ich habe ein Webprojekt in meiner Lösungsdatei, das beim Öffnen der Lösung "nicht verfügbar" ist. Wenn ich mit der rechten Maustaste auf das Webprojekt klicke und das Projekt neu lade, wird folgende Fehlermeldung angezeigt:

The Web Application Project mycompany.myapp.mywebproject is configured to use IIS. The Web Server 'http://localhost/MyWebApp could not be found.

Ich habe virtuelle Verzeichnisse für diese Webanwendung nicht manuell eingerichtet.

Laut Kollegen sollte Visual Studio mich auffordern, virtuelle Verzeichnisse zu erstellen, aber ich werde nicht dazu aufgefordert.

Ich habe VS2010 installiert, bevor ich IIS auf meinem Entwicklungscomputer installiert habe.

Hier ist mein Setup für die Entwicklungsmaschine:

  • Windows 7 Enterprise
  • Service Pack 1
  • 64-Bit-Betriebssystem
  • Visual Studio 2010 Enterprise Service Pack 1
  • IIS Version 7.5
Dotnet-Praktiker
quelle

Antworten:

87

In diesem Fall besteht die einfachste Lösung darin, das virtuelle Verzeichnis manuell zu erstellen.

Zunächst müssen Sie sicherstellen, dass Sie die richtige Version von ASP.Net installiert und die IIS-Erweiterungen installiert haben.

Wechseln Sie dazu in den Ordner der entsprechenden .net-Version unter C: \ (Windows) \ Microsoft.NET \ Framework \ (dotnetver) \ (ersetzen Sie die richtigen Ordner auf Ihrem PC durch die Ordner in Klammern) und führen Sie diesen Befehl aus

aspnet_regiis.exe -i

Das nächste Mal, wenn das läuft und fertig ist, läuft es manchmal

iisreset

über die Kommandozeile hilft, manchmal müssen Sie nicht.

Gehen Sie als Nächstes zu Ihrem IIS-Manager, suchen Sie Ihre localhost-Website und wählen Sie Ordner hinzufügen. Navigieren Sie zu dem Ordner in Ihrem Projekt, der das eigentliche ASP.Net-Projekt enthält, und fügen Sie diesen hinzu.

Klicken Sie abschließend mit der rechten Maustaste auf den Ordner, den Sie hinzugefügt haben, und Sie sollten die Option "In Anwendung konvertieren" oder "Virtuelles Verzeichnis erstellen" oder ähnliches haben.

!! Stellen Sie sicher, dass das virtuelle Verzeichnis den Namen 'MyWebApp' hat !!

Laden Sie Ihre Lösung neu und es sollte funktionieren.

Bitte seien Sie vorsichtig; Dies ist keine Programmierfrage (und sollte eigentlich nicht hier veröffentlicht werden), aber ich habe diese Anleitung veröffentlicht, da es sich um ein häufiges Problem handelt, aber der Rat, den ich veröffentlicht habe, ist allgemein gehalten. Die von mir aufgelisteten Befehle sind korrekt, aber die Schritte, die Sie in IIS ausführen müssen, können variieren. Dies hängt von Ihrer Version und Ihren Kontoberechtigungen ab.

Viel Glück!

Russ Clarke
quelle
Ich habe die Anweisungen befolgt und den folgenden Fehler erhalten. Ich habe mein virtuelles Verzeichnis aufgrund dieses Fehlers zunächst gelöscht. Es kann kein doppelter Sammlungseintrag vom Typ 'add' hinzugefügt werden, wobei das eindeutige Schlüsselattribut 'name' auf 'Telerik_Web_UI_WebResource_axd' gesetzt ist
Dotnet-Practitioner
Was gibt diesen Fehler, IIS oder Visual Studio, wenn Sie die Lösung starten?
Russ Clarke
Überprüfen Sie auch die web.config für Ihr neues asp.net-Projekt. Es enthält zwei oder mehr Verweise auf 'Telerik.WebResource.axd' und benötigt nur einen.
Russ Clarke
Ich habe web.config überprüft. Wenn ich den fehlerhaften Eintrag entferne, wird die Fehlermeldung angezeigt, dass der entfernte Eintrag benötigt wird.
Dotnet-Praktizierender
kurz davor, eine separate Frage für die neue Fehlermeldung zu stellen
Dotnet-Praktiker
523

Da für die akzeptierte Antwort IIS Manager erforderlich ist und IIS Express weder über IIS Manager noch über eine Benutzeroberfläche verfügt, ist hier die Lösung für Sie IIS Express-Benutzer (und sollte auch für alle anderen funktionieren):

Wenn Sie Visual Studio öffnen und die Fehlermeldung erhalten, klicken Sie mit der rechten Maustaste auf den Projektlösungs-Explorer und wählen Sie "Bearbeiten {Projektname} .csproj".

In der Projektdatei, ändern Sie die folgende Zeile ein :
<UseIIS>True</UseIIS>
auf
<UseIIS>False</UseIIS>
die Datei zu speichern.

Laden Sie nun Ihr Projekt neu.
Erledigt.

Sie können dann Ihr Projekt öffnen. Wenn Sie zu diesem Zeitpunkt IIS verwenden möchten, gehen Sie einfach zu Ihren Projekteigenschaften, klicken Sie auf die Registerkarte "Web" und wählen Sie die Option zur Verwendung von IIS aus. Dort befindet sich die Schaltfläche "Virtuelles Verzeichnis erstellen". Möglicherweise wird Ihnen mitgeteilt, dass Sie Visual Studio als Administrator ausführen müssen, um dieses Verzeichnis zu erstellen. Tun Sie dies bei Bedarf.

Doug S.
quelle
33
in VS2010 UseIIS ist nicht in der csproj-Datei, sondern in der .csproj.user-Datei
oleksa
2
In meinem Fall möchte ich immer noch IIS verwenden, also habe ich einfach die URL geändert und funktionierte perfekt, danke.
kjetilh
Ich habe dieses Problem beim Upgrade und Umzug. Dies funktionierte für mich, obwohl ich die csproj im Texteditor geöffnet habe, da die Lösung nicht geladen wurde. Danke Doug.
Kieran
2
Dies ist die richtige Antwort. Das Projekt ist so konfiguriert, dass sowohl IIS als auch IISExpress gleichzeitig verwendet werden.
Aaron Reed
2
Bei Verwendung von VS2013 wird "Projektname} .csproj nicht bearbeiten" angezeigt, wenn Sie mit der rechten Maustaste auf die Lösung klicken. Ich habe die Bearbeitung durchgeführt, indem ich zum Dateisystem gegangen bin und die .csproj-Datei manuell bearbeitet habe. Es war schreibgeschützt, also musste ich ein wenig tanzen, aber es hat funktioniert.
Al Lelopath
222

Öffnen Sie den Projektordner, löschen Sie {Project} .csproj.user und laden Sie das Projekt erneut in Visual Studio.

qjuanp
quelle
2
Ich war der einzige in unserem Team, der diesen IIS-Fehler sah. Das Entwicklerteam, mit dem ich zusammenarbeite, hatte dieselbe .csproj-Datei aus der Quellcodeverwaltung, sodass die anderen oben genannten Lösungen nicht mein Problem waren. Es stellt sich heraus, dass die von Ihnen erwähnte Datei .csproj.user diesen Fehler in meiner Situation verursacht hat. Vielen Dank!
Mein Stapel läuft am
3
Dies funktionierte für mich, nachdem ich fast alles andere ausprobiert hatte
David
3
Dies ist die richtige Antwort. Es behebt ein Problem mit der Konfiguration des Projekts auf Ihrem Computer (besonders wichtig bei der Arbeit mit TFS).
Markus
1
Dies ist auch die Lösung, wenn Sie ein benutzerdefiniertes iisurl-Tag festgelegt haben, das Projekt jedoch weiterhin auf dem lokalen Host <IISUrl> MachineName.domain: 12345 / </ IISUrl >
lsp
5
Dieser hat für mich gearbeitet. In meinem Fall gab es keine <UseIIS> -Einstellung.
Techgration
33

Diese Lösung hat bei mir funktioniert: Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Bearbeiten. Suchen Sie den folgenden Code, wie unten im Bild gezeigt.

change the <UseIIS>True</UseIIS> to <UseIIS>False</UseIIS>

ODER

change the <IISUrl>http://example.com/</IISUrl> to <IISUrl>http://localhost/</IISUrl>

csproj Screenshot

Umar Abbas
quelle
30

Für mich musste ich diese beiden Zeilen aus der .csproj-Datei löschen

<ProjectGuid>{3AA499DF-4A65-43B7-8965-D08A4C811834}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

Ich habe versucht, nur den ersten zu löschen, aber es war nicht genug.

BEARBEITEN: Wie viele Benutzer bereits betont haben, kann dies Ihren Projekttyp ändern oder Ihr Quellcodeverwaltungsprogramm durcheinander bringen. Ich kann diese Probleme nicht untersuchen, da es ein Schulprojekt war, das ich nicht mehr habe. Bitte seien Sie vorsichtig, wenn Sie dies versuchen. Machen Sie zumindest eine Kopie von dem, was Sie löschen.

Kisslory
quelle
9
Dieser hat funktioniert und dieser sollte als Antwort markiert werden. Ich habe viele Lösungen ausprobiert, wie in SO vorgeschlagen, aber keine hat für mich funktioniert, außer dieser.
Bose_geek
3
Nachdem ich alle oben genannten Vorschläge ausprobiert habe, ist dies derjenige, der tatsächlich für mich funktioniert hat. Danke mein Kumpel!
Noble-Savage
2
Dies ändert sich in den Projekttyp, sodass es sich nicht mehr um eine Webanwendung handelt.
Oram
3
Es ist keine gute Idee, <ProjectGuid> aus der .csproj-Datei zu entfernen. Um das Projekt zu laden, reicht es aus, nur <ProjectTypeGuids> zu entfernen, was ebenfalls eine schlechte Idee ist, da es den Projekttyp ändert, wie @Oram erwähnt. Diese Antwort ist gut, wenn Sie Ihre Änderungen nicht festschreiben möchten. Schauen Sie sich einfach den Code in VS an.
Elshev
1
Dadurch wurden die Fehler beim Laden des Lösungs-Explorers behoben, die bei einer vom Auftragnehmer entwickelten Visual Studio 2010-Lösung auftraten, auf die ich 2013 umsteige. Die Lösungsdatei enthält zwei Projekte. eine Web-App und ein Web-Service. Ich konnte auch keine laden, daher zeigte der Projektmappen-Explorer nur zwei leere Ordner an, nachdem ich versucht hatte, die Lösungsdatei zu öffnen. Nachdem ich die vorgeschlagenen Zeilen ProjectGuid und ProjectTypeGuids auskommentiert hatte, konnte ich die Abhängigkeiten dieser Projekte im Projektmappen-Explorer sehen. Für mich war dies eine Option mit geringem Risiko und hoher Rendite, da ich diese Änderungen leicht rückgängig machen konnte. Vielen Dank!
JohnH
26

Bearbeiten Sie die Datei .csproj oder vbproj. Suchen und ersetzen Sie diese Einträge

<UseIIS>true</UseIIS> by <UseIIS>false</UseIIS>
<UseIISExpress>true</UseIISExpress> by <UseIISExpress>false</UseIISExpress>
jcmordan
quelle
1
Ich musste auch DevelopmentServerPort auf einen anderen Wert als 80
ändern
1
Und wenn Sie die Einstellungen in der csproj-Datei nicht finden können. Öffnen Sie die Datei .csproj.user und führen Sie sie dort aus.
Devzero
10

In meinem Fall wurde dieses Problem durch fehlerhafte IIS-Bindungen verursacht. Insbesondere wurde meine 'http'-Bindung gelöscht. Durch die Neuerstellung wurde das Problem behoben.

Roger Lipscombe
quelle
Ich hatte ein sehr ähnliches Problem. Meine HTTP-Bindung schien sich eines Tages umzubenennen. -_- Die Projektdateieinstellung für <IISUrl>hatte sich nicht geändert (danke SVN für die Bestätigung meines Gedächtnisses und meiner Vernunft), aber irgendwie hatte sich die iis-Bindung geändert. Es wurde behoben und das Projekt wurde sofort geladen.
Patrick M
Denken Sie auch daran, zu überprüfen, ob Sie den Sni- / Hostnamen der Zielwebsite aus irgendeinem Grund geändert haben. Dies hat in meinem Fall den Fehler verursacht.
Juarola
5

Versuchen Sie, Visual Studio mit Administratorrechten zu öffnen. In meinem Fall gab es Zugriff auf die IIS-Site und ließ diesen Fehler verschwinden. Ich konnte das Projekt dann auf IIS Express umstellen, für das anscheinend keine Administratorrechte erforderlich sind.

kad81
quelle
5

Dies hat bei mir funktioniert: -
Stellen Sie sicher, dass alle Ihre IIS-Websites nur auf localhost (Alle nicht zugewiesen) verweisen

Geben Sie hier die Bildbeschreibung ein

JerryGoyal
quelle
5

Wenn Sie über TFS verbunden sind, öffnen Sie Ihre Datei project.csproj.user und suchen Sie nach

<UseIISExpress>false</UseIISExpress>

und ändere es auf wahr.

<UseIISExpress>true</UseIISExpress>
Patrick Dengler
quelle
Obwohl ich der Meinung bin, dass dies eher eine Problemumgehung als die eigentliche Lösung ist, gab es einen Daumen hoch, als es meine unmittelbare Besorgnis löste.
Nandun
Hat gut funktioniert :)
Hammad Sajid
4

Sie können das Projekt laden, ohne den Wert des Attributs UseIIS auf true zu setzen. Befolgen Sie einfach die folgenden Schritte:

In der Datei mywebproject.csproj--

Löschen Sie das Tag <IISUrl> http: // localhost / MyWebApp / </ IISUrl> und speichern Sie die Datei. Die Anwendung weist ihr automatisch den Standardport zu.

Yogesh Gangwar
quelle
4

Sie werden das nicht glauben, startVisual Studio als Administrator

wie aus der Nachricht ersichtlich

Der Webserver ' http: // localhost / MyWebApp ' wurde nicht gefunden.

konnte nicht gefunden werden, weil kann it has no privileges to see it

Also nur restartVisual Studio als Administrator

Basheer AL-MOMANI
quelle
3

In meinem Fall wollte ich von http zu https wechseln, also hatte ich http von IIS gelöscht. In meiner .csproj.user-Datei fand ich noch:

<IISUrl>http://localhost/</IISUrl>

Also habe ich es geändert in:

<IISUrl>https://localhost/</IISUrl>
Njaal Gjerde
quelle
2

In meinem Fall konnte ich die Lösung im Offline-Modus öffnen, indem ich nur den folgenden Befehl ausführte:

iisreset
Conrado Fonseca
quelle
2

Wenn Sie als Win8-Benutzer die Schritte in der akzeptierten Antwort befolgen, gibt die Konsole eine Meldung an Sie aus: "Sie dürfen die Befehlszeile nicht zum Ausführen dieses Befehls verwenden" (Paraphrasierung). Greifen Sie stattdessen über die Systemsteuerung (oder Windows + R> appwiz.cpl) auf die Programme und Funktionen zu, klicken Sie auf "Windows-Funktionen aktivieren oder deaktivieren" und stellen Sie sicher, dass Folgendes installiert ist:

Internet Information Services
  > World Wide Web Services
    > Application Development Features
      > ASP.NET 4.5

Dadurch werden auch eine Reihe anderer Optionen überprüft. Sobald ich diese Funktionen installiert und VS2012 mit erhöhten Berechtigungen ausgeführt habe, konnte ich meine App erfolgreich starten.

Scott Silvi
quelle
2

Dies passiert bei mir, als ich versucht habe, ein Projekt aus der .csproj-Datei zu öffnen, aber ich komme darüber hinweg, indem ich das Projekt über VS öffne:

Datei> Öffnen> Website

und wählen Sie das Verzeichnis aus, das mein Projekt enthält.

mshwf
quelle
1

Ich hatte auch diesen Fehler. Ich dachte, alles sei korrekt eingerichtet, fand aber heraus, dass eines fehlte: Der Hostname, den ich für mein Projekt verwendete, war (noch) nicht auflösbar.

Da meine App den Namen des aktuellen Clients aus dem Hostnamen ermittelt, habe ich einen Hostnamen wie clientname.mysuperapp.localfür die Entwicklung verwendet. Als ich meiner hostsDatei den Namen des Entwicklungshosts hinzufügte , konnte das Projekt erneut geladen werden. Natürlich musste ich das trotzdem tun, aber ich habe nicht gedacht, dass VS den Hostnamen überprüft, bevor das Projekt geladen wird.

Fero
quelle
1

Überprüfen Sie, ob IIS Express installiert ist. Wenn IIS Express fehlt, verwirft Visual Studio möglicherweise die Einstellung <UseIISExpress>false</UseIISExpress>und sucht dennoch nach dem Express.

Thea
quelle
1

Stellen Sie in meinem Fall sicher, dass Sie eine "Standard" -Website haben

zeichnete
quelle
1

In meinem Fall hatte die "Standardwebsite" in IIS keine Bindung für localhost an Port 80. Sie sollten eine Bindung für Ihren Wert in der .csproj-Datei haben.

Dan Mirescu
quelle
1

Ich habe dies einfach durch Neuinstallation von IIS Express nach dem Herunterladen über den folgenden Link behoben:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=48264

Matthew
quelle
1
Dies gibt keine Antwort auf die Frage. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten, die nicht vom Fragesteller geklärt werden müssen . - Von der Bewertung
FluffyKitten
@FluffyKitten Ich hatte den gleichen Fehler wie das OP, ich habe alle anderen Antworten ausprobiert und nichts hat funktioniert, außer IIS Express neu zu installieren. Ich glaube, dies ist meine Antwort auf die Frage des OP. Installieren Sie IIS neu.
Matthew
Ihre Antwort wurde als minderwertig gekennzeichnet und durchläuft einen Überprüfungsprozess (beachten Sie das "Aus Überprüfung" am Ende des Kommentars). Während es möglicherweise funktioniert, ist die Neuinstallation von Software ein letzter Ausweg, wenn nichts anderes funktioniert, und keine spezifische Lösung für das Problem dieses OP.
FluffyKitten
Wenn es ein letzter Ausweg ist, nachdem nichts anderes funktioniert - und laut Ajay2707 besteht das Potenzial, dass keine der anderen Antworten für eine arme Seele funktioniert -, dann würde ich denken, dass diese Antwort nützlich sein könnte. Wie können Sie eine Antwort als minderwertig bezeichnen, wenn dies für manche Menschen möglicherweise das einzige ist, was funktioniert? Ich unterstütze dich Ajay2707. Vielen Dank, dass Sie sich die Zeit genommen haben, einen Beitrag zur Community zu leisten.
Nardnob
Inb4 wird diese Konversation als minderwertig verschoben / gelöscht. viva la Widerstand !!
Nardnob
0

In meinem Fall die URL, auf die im csproj verwiesen wird Datei angegebene falsch.

Es musste vorangestellt werden www .

Ich habe die Änderungen vorgenommen, die Datei gespeichert und das Projekt gut geladen.

Patrick Fischer
quelle
0

Ich bin auf dieses Problem <ProjectTypeGuids>gestoßen, als das Element in der .csproj-Datei die Unit-Test-Projekt-GUID enthielt : {3AC096D0-A1C2-E12C-1390-A8335801FDAB}.

Durch das Entfernen wurde das Projekt problemlos geladen.

MvdD
quelle
0

Für DNN-Benutzer bestand mein Problem darin, dass ich eine Bindung für dnndev.me an Port 80 benötigte. Ich habe mehrere Installationen, die auf verschiedenen Ports ausgeführt werden, und VS erfordert, dass diese bestimmte URL auf Port 80 vorhanden ist (nicht 86 wie meine).

Mickers
quelle