2014-03-25 11 views
14

Ich habe eine VirtualBox VM unter Windows Server 2008 R2. Der Server ist als Domänencontroller konfiguriert.IIS Anwendung mit freigegebenen Ordner in VirtualBox VM

Ich habe Quellcode in meiner Webanwendung auf dem Hostcomputer. Ich habe einen Ordner für die Gast-VM freigegeben, die den Quellcode enthält. Ich konfigurierte eine IIS-Anwendung auf dem Guest-Computer und zeigte sie auf die Freigabe (\ VBOXSVR \ code).

Wenn ich die Anwendung ausführen, bekomme ich die folgende Meldung:

Module: IIS Web Core
Notification: BeginRequest
Handler: Not yet determined
Error Code: 0x80070001
Config Error: Cannot read configuration file
Config File: \?\UNC\VBOXSVR\code\web.config

ich überprüft haben, dass das Benutzerkonto, das app-Pool unter läuft die Freigabe zugreifen kann. Irgendwelche Ideen, wie das zu beheben ist?

+0

Hallo, hast du dieses Problem gelöst? – Reynaldi

+0

das gleiche Problem hier, es war für mich arbeiten, nicht sicher, was sich jetzt geändert hat, irgendein Glück, es zu lösen? – peter

Antwort

8

Ich hatte ein sehr ähnliches Problem beim Einrichten einer Vagrant Box für Windows 2012 R2 mit IIS für Entwicklungszwecke. Von dem, was ich erinnere mich, ich war in der Lage, die folgenden als Behelfslösung zu verwenden, aber nicht etwas, würde ich in einer Produktionsumgebung implementieren möchten:

  1. Fabrikat C: \ vagrant eine Netzwerkfreigabe und die Berechtigungen sein zugänglich durch den Benutzer mit IIS \\localhost\vagrant.
  2. die Webroot für Standort Stellen Sie die Netzwerkfreigabe \\localhost\vagrant

Theoretisch sein kann folgende für Ihre Situation arbeiten:

  1. einen symbolischen Link auf die Netzwerkfreigabe erstellen, IE: mklink /j "\\VBOXSVR\code" C:\code\
  2. Machen Sie C: \ Code eine Netzwerkfreigabe, die von IIS, \\localhost\code
  3. zugänglich ist Stellen Sie sicher, dass der Benutzer, der IIS ausführt, über Berechtigungen für die Netzwerkfreigabe
  4. verfügt
  5. die Webroot für die Website in IIS auf der Netzwerkfreigabe Set, \\localhost\code

(Optional) ich einen Eintrag in die Host-Datei hinzugefügt: für localhost (C \ Windows \ System32 \ drivers \ etc \ Host). Dies schien die Leistung zu verbessern, sollte aber nicht notwendig sein.

Hoffentlich zeigt Ihnen dies die richtige Richtung.

+0

Ehrfürchtig, vielen Dank dafür - das hat ein langjähriges frustrierendes Problem gelöst. Allerdings merke ich Leistung für diese Methode ist wirklich langsam. Fragen Sie sich, ob Sie irgendwelche Einsichten haben oder ob Sie diese Methode genutzt haben, um sie zu verbessern? Zum Beispiel benötigen grundlegende Anforderungen an eine statische HTML-Datei 1-2 Sekunden zum Laden. Habe noch nicht einmal eine ASP.Net-Seite ausprobiert. –

+0

Leider war dies ein Workaround, daher hat es nicht die beste Leistung. Ich erinnere mich daran, dass es anfangs Performance-Probleme gab. Wenn ich mich richtig erinnere, habe ich Folgendes getan: Ich habe die vm-Spezifikationen auf 3 GB Speicher und 4 Prozessoren erhöht, den App-Pool nach einer Stunde recycelt, den localhost-Eintrag in der Host-Datei hinzugefügt und die Registry nach diesem MS bearbeitet doc] (http://technet.microsoft.com/en-us/library/dd296694 (v = ws.10) .aspx) obwohl es für IIS 6.0 ist – dtripler

+0

Dies funktionierte für mich mit der Ausnahme, dass ich meine laufen musste mklink-Befehl mit der Option/d, nicht/j. – Jordan

1

Es scheint ein Problem mit der Art und Weise zu geben, wie Virtualbox die Ordner zwischen Host und Gast freigibt. Wie ich bei der Einrichtung von Vagrant festgestellt habe, wenn Sie manuell eine UNC-Freigabe auf dem Host erstellen, stellen Sie eine Verbindung zu dieser Freigabe auf dem Guest her und zeigen Sie IIS darauf an.

Beachten Sie, dass Sie bei Verwendung von Anwendungspools sicherstellen sollten, dass der Benutzer, der dem Pool zugewiesen ist, auf die Freigabe zugreifen kann.

Wenn Sie sehen möchten, wie ein paar Powershell-Skripts aussehen, um den Prozess zu automatisieren, werfen Sie einen Blick in das Skriptverzeichnis von https://github.com/mefellows/vagrant-smb-plugin.

Alternativ können Sie den Typ rsyncsynced-folder verwenden, der den Vorteil einer viel besseren Leistung hat. Sie können eine lokale Windows-VM mit Packer (example templates) erstellen.

-2

Nachdem ich ein paar Stunden zu diesem Thema verbracht habe, habe ich es endlich geschafft, es zum Laufen zu bringen. Konfigurieren Sie die Identität des Anwendungspools für Gastbenutzer.Wenn Sie dies tun, wird alles wie erwartet funktionieren.

Ich habe ein Setup, in dem der Host-Betriebssystem den Code hat und ein virtualbox vm mit IIS konfiguriert Code aus einem freigegebenen Ordner (vbox freigegebenen Ordner) serviert. Alles funktioniert wie erwartet.

+0

War dies ein eingebauter Gast-Account? Meine Installation von Windows Server 2008 R2 hat kein Gastkonto. Ich frage mich, ob es funktionieren würde, wenn ich einen erstellen würde? – Jonathan

+0

@Radu Habe zur Zeit genau das selbe Problem, was du hattest. Können Sie bitte erklären, was Sie mit "Konfiguration Ihrer Anwendungspool-Identität für Gastbenutzer" tun? Ich 'öffnete den IIS Manager -> mein System -> Anwendungspools' und fand dort meine frisch eingerichtete Webseite. Der rechte Mausklick zeigt ein Kontextmenü mit einigen Punkten an, die relevant sein könnten: 'Set Application Pool Defaults ... ',' Grundeinstellungen ... ',' Erweiterte Einstellungen ... 'Wie konfiguriere ich jetzt die Anwendungspoolidentität? Gastbenutzer? Vielen Dank. – automatix

+0

@jonathanconway hast du es herausgefunden? – Rob