我在IIS中托管了一个站点并运行了该应用程序。我有一个exe在从MSMQ读取条目后执行操作。所以基本上应用程序在MSMQ中添加任务,exe读取该任务并执行它。
我还有一个单独的dll在那个dll中我正在动态地准备一些html的href链接。为此,我需要服务器dns和托管网站名称。
来自此网址的Ex:http://localhost/mysite/login.aspx 我只需要http://localhost/mysite。
我在exe执行的任务之一中使用此自定义dll。
现在问题是我不知道如何获取dns和网站名称,因为自定义dll不会拥有HttpContext.Current对象。
答案 0 :(得分:3)
将GetHostEntry
与GetHostName
一起使用,以获取您拨打电话的计算机的DNS主机名。
var hostname = Dns.GetHostEntry(Dns.GetHostName()).HostName;
要获取IIS虚拟目录,请按照操作系统帖子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);
答案 1 :(得分:0)
答案 2 :(得分:-1)
我不确定我是否完全理解您的问题,但是如何在服务器上的PATH中保存您需要的URL并在DLL中读取它?