2013-09-03 7 views
5

Ich habe einen Web-Service in IIS 7 installiert. Wenn ein Fehler auftritt, muss ich die Nachricht protokollieren, die den Fehler verursacht hat. Das Protokoll muss auf einer Netzwerkfreigabe erstellt werden, auf der Entwickler Zugriff auf die Freigabe haben (da wir keinen Zugriff auf den Server haben, auf dem der Dienst bereitgestellt wird). Ein virtuelles Verzeichnis wurde in IIS erstellt, dessen physischer Pfad auf der Netzwerkfreigabe ist.So rufen Sie den physischen Pfad für das virtuelle Verzeichnis ab

Wie bekomme ich den physischen Pfad des virtuellen Verzeichnisses? Ich habe versucht, mit

, aber dies gibt nur den physischen Pfad auf dem Server, wo der Dienst befindet.

Zum Beispiel, wenn das virtuelle Verzeichnis "WSLogs" ist und ich gebe die virtualDirectoryPath als "~/WSLogs" Ich zurück C erhalten wird: \ inetpub \ wwwroot \ myServiceDirectory \ WSLogs \

+0

Nur um sicherzugehen Ich verstehe, Sie suchen den Netzwerkpfad des virtuellen Verzeichnisses und nicht den physischen Pfad auf dem Server? –

+0

In IIS ist der physikalische Pfad des virtuellen Verzeichnisses auf den physischen Pfad im Netzwerk festgelegt (der Freigabeordner). Ich möchte diesen Freigabeordnerpfad abrufen. – knightscharge

Antwort

9

Das virtuelle Verzeichnis erstellt wurde auf der gleichen Ebene (unter Knoten der Standardwebsite) wie der Webdienst. Nachdem das virtuelle Verzeichnis zu bewegen unter dem Web-Service-Knoten selbst angeordnet zu sein, konnte ich den physischen Pfad für das virtuelle Verzeichnis erhalten mit:

System.Web.Hosting.HostingEnvironment.MapPath(virtualDirectoryPath) 

wo die virtualDirectoryPath ist ~/WSLogs

+0

Super! Rette meinen Tag ... danke –

Verwandte Themen