我想阅读来自iis的web服务信息,特别是地址。 对于IIS7,我可以使用此代码阅读以下信息。是否有可能从IIS获取asp.net网络地址
var iisManager = new ServerManager();
sites = iisManager.Sites;
foreach (var site in sites)
{
IISService serv = new IISService();
serv.Name = site.Name;
serv.State= site.State.ToString();
serv.PhysicalPath= site.Applications["/"].VirtualDirectories[0].PhysicalPath;
allServices.Add(serv);
}
对于II6
DirectoryEntry IIsEntities = new DirectoryEntry(Path);
foreach (DirectoryEntry IIsEntity in IIsEntities.Children)
{
if (IIsEntity.SchemaClassName == "IIsWebServer")
{
yield return new Website
(
IIsEntity.Properties["ServerComment"].Value.ToString(),
GetPath(IIsEntity),
(ServerState)IIsEntity.Properties["ServerState"].Value
);
}
}
我可以读取上面的信息,但我想读ASMX Web服务的端点信息。 那就像: http://localhost:8091/Service1.asmx
是否有可能读取端口号或asmx文件的名称?
不,这是不可能的,因为它们可以是路径之外的任何地方。你必须找到配置文件。 – VMAtm 2015-02-11 08:41:28
当我询问PhysicalPath中的Directory.GetFiles * .asmx时,可以找到Service1.asmx文件。其实端口号对我来说是足够的信息。 – 2015-02-11 08:45:13
端口是一个管理选项,不对应磁盘上的文件。 – VMAtm 2015-02-11 11:15:51