2016-04-14 15 views
0

Ich habe eine Site in IIS gehostet und die Anwendung ausgeführt. Ich habe eine exe, die Operation nach dem Lesen der Einträge aus MSMQ ausführt. Also im Grunde Anwendung hinzufügen die Aufgabe in MSMQ und exe liest diese Aufgabe und führt sie aus.Wie erhalten Sie den Servernamen und den Namen der gehosteten Site einer in IIS gehosteten Site?

Ich habe eine separate dll auch in dieser dll Ich bereite einige href Link von HTML dynamisch. Dafür benötige ich Server-DNS und gehosteten Site-Name.

Beispiel: http://localhost/mysite/login.aspx von dieser URL brauche ich nur http://localhost/mysite.

Ich benutze diese benutzerdefinierte DLL in einer der Aufgabe, die exe ausführt.

Nun ist das Problem, ich weiß nicht, wie DNS und Site-Name zu bekommen, weil benutzerdefinierte DLL nicht HttpContext.Current Objekt haben wird.

Antwort

3

Verwenden Sie GetHostEntry zusammen mit GetHostName, um den DNS-Hostnamen des Computers abzurufen, auf dem Sie den Anruf tätigen.

var hostname = Dns.GetHostEntry(Dns.GetHostName()).HostName; 

das virtuelle IIS-Verzeichnis zu erhalten, erklärt in der OS Post folgen Sie den Anweisungen How to get the IIS virtual dir & web application's physical paths with C# code:

ServerManager serverManager = new ServerManager(); 

// get the site (e.g. default) 
Site site = serverManager.Sites.FirstOrDefault(s => s.Name == "Default Web Site"); 

// get the application that you are interested in 
Application myApp = site.Applications["/Dev1"]; 

// get the physical path of the virtual directory 
Console.WriteLine(myApp.VirtualDirectories[0].PhysicalPath); 
+0

das wird mir den Hostnamen, aber wie bekomme ich den virtuellen Verzeichnisnamen der Anwendung, die in IIS gehostet wird? – Mukund

-1

Ich bin mir nicht sicher, ob ich Ihr Problem vollständig verstanden habe, aber wie wäre es, URL in PATH auf dem Server zu speichern und in Ihrer DLL zu lesen?

+0

Wie dies logisch ist? "Ich verstehe das Problem nicht, aber hier ist die Antwort ..." und Programmierung ist über Logik – Aristos

+0

Sie sollten Kommentar Abschnitt verwenden, wenn Sie weitere Informationen zu Frage benötigen, und sollte die Antwort schreiben, wenn Sie eine haben. – Afnan

0

Sie suchen, dass asp.net Funktion

GetHostEntry(string hostNameOrAddress)

Es gibt auch andere kommerzielle Bibliotheken, die ähnliche Funktionen wie aspNetDns enthält, die ich bevorzuge.

+0

das wird mir den Hostnamen, aber wie bekomme ich den virtuellen Verzeichnisnamen der Anwendung, die in IIS gehostet wird? – Mukund