如何從IIS元數據庫中獲取IIS C#的所有(物理)wwwroot目錄(主目錄)?IIS:與C#IIS的wwwroot目錄?
1
A
回答
5
如果您使用IIS6:
您需要在Visual Studio中的Add References .NET程序集中添加對System.DirectoryServices
的引用標籤:
using System;
using System.DirectoryServices;
namespace ListRootAppPathsIIS6
{
class Program
{
static void Main(string[] args)
{
using (DirectoryEntry de = new DirectoryEntry("IIS://Localhost/W3SVC"))
{
foreach (DirectoryEntry w3svc in de.Children)
{
if (w3svc.SchemaClassName == "IIsWebServer")
{
string rootPath =
String.Format("IIS://Localhost/W3SVC/{0}/root", w3svc.Name);
using (DirectoryEntry root = new DirectoryEntry(rootPath))
{
string info = String.Format("{0} - {1} - {2}",
w3svc.Name,
w3svc.Properties["ServerComment"].Value,
root.Properties["Path"].Value);
Console.WriteLine(info);
}
}
}
}
Console.ReadLine();
}
}
}
如果你正在使用IIS7:
增加提及C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll
using System;
using System.Linq;
using Microsoft.Web.Administration;
namespace ListRootAppPathsIIS7
{
class Program
{
static void Main(string[] args)
{
using(ServerManager serverManager = new ServerManager())
{
foreach (var site in serverManager.Sites)
{
var app = site.Applications.Where(a => a.Path == "/").First();
var vdir = app.VirtualDirectories.Where(v => v.Path == "/").First();
string info = String.Format("{0} - {1} - {2}",
site.Id,
site.Name,
Environment.ExpandEnvironmentVariables(vdir.PhysicalPath));
Console.WriteLine(info);
}
}
Console.ReadLine();
}
}
}
第一種方法(使用System.Directoryservices
)將與IIS7工作提供你已經安裝IIS6管理兼容性位。
在這兩種情況下,您都需要以管理員身份運行。
2
你可以叫出
C:\Windows\system32\inetsrv\appcmd.exe list vdir
(使用API來獲取過程中的正確的文件夾)。並過濾爲「網站 \」(默認網站「默認網站/」。我假設有一些API來做到這一點(但是,當然,對於較舊的IIS版本,這是非常腳本導向,所以需要處理。IDispatch
調用方法和財產得到)
這確實需要在IIS7和7.5提升進程(除非有足夠的權限,IIS已經被委派)
相關問題
- 1. IIS Express 7.5 wwwroot目錄在哪裏
- 2. IIS的wwwroot Git工作樹
- 3. php路徑iis虛擬目錄wwwroot以外
- 4. 中IIS目錄
- 5. IIS目錄瀏覽
- 6. URL目錄IIS 6
- 7. IIS目錄服務
- 8. ASP.NET IIS與IIS Express
- 9. IIS ASP.net目錄權限
- 10. IIS - 開始在目錄
- 11. IIS URL重定向目錄
- 12. 使用WMI創建IIS應用程序目錄與C#
- 13. WCF - IIS 6與IIS 7
- 14. WCF與IIS IIS綁定
- 15. 通過C#與IIS交互
- 16. 在IIS 6和IIS 7/7.5中使用C#創建虛擬目錄
- 17. 的SQLite與IIS
- 18. 的WebService在IIS與IIS的管理
- 19. 從asp.net webapp訪問web目錄IIS IIS 7
- 20. IIS 8中的虛擬目錄設置
- 21. IIS中的IEnvironment.WebRootPath和虛擬目錄
- 22. 拒絕訪問IIS 6.0中的目錄
- 23. Azure中的IIS虛擬目錄
- 24. IIS虛擬目錄的web.config從
- 25. IIS中虛擬目錄的端口號
- 26. 指向IIS中的虛擬目錄
- 27. 獲取IIS的默認安裝目錄
- 28. 與IIS的子目錄中的Rails 3.1應用程序
- 29. php_printer.dll與IIS
- 30. NServiceBus與IIS
謝謝!這正是我需要的! – Kottan 2010-11-10 16:14:10