Microsoft中提供了管理IIS7及以上版本一個很是強大的API - Microsoft.Web.Administration.dll,利用該API能夠讓咱們很方便的以編程的方式管理和設定IIS的各項配置信息了。web
Microsoft.Web.Administration.dll位於IIS目錄下(%WinDir%\System32\InetSrv)下,在項目中添加引用後就能夠使用這些API了。編程
參考資料:https://msdn.microsoft.com/en-us/library/microsoft.web.administration(v=vs.90).aspx
網站
下面經過代碼進行web發佈:spa
一、添加 Microsoft.Web.Administration.dll 引用blog
二、引用命名空間 using Microsoft.Web.Administration;get
/// <summary>
/// 使用代碼進行web發佈
/// </summary>
/// <param name="webName">web應用程序名稱</param>
/// <param name="port">web應用程序端口</param>
/// <returns></returns>
private bool PublishWeb(string webName, int port)
{
try
{
ServerManager iismanager = new ServerManager();
//判斷應用程序池是否存在
if (iismanager.ApplicationPools[webName] != null)
{
iismanager.ApplicationPools.Remove(iismanager.ApplicationPools[webName]);
}
//判斷web應用程序是否存在
if (iismanager.Sites[webName] != null)
{
iismanager.Sites.Remove(iismanager.Sites[webName]);
}
//創建web應用程序(第二個參數爲安裝文件的地址)
iismanager.Sites.Add(webName, "c:\\webFilePath", port);
//添加web應用程序池
ApplicationPool pool = iismanager.ApplicationPools.Add(webName);
//設置web應用程序池的Framework版本(注意版本號大小寫問題)
pool.ManagedRuntimeVersion = "v4.0";
//設置是否啓用32爲應用程序
pool.SetAttributeValue("enable32BitAppOnWin64", true);
//設置web網站的應用程序池
iismanager.Sites[webName].Applications[0].ApplicationPoolName = webName;
//提交更改
iismanager.CommitChanges();
return true;
}
catch (Exception ex)
{
throw (ex);
}
}
在對web應用程序池屬性進行設置時,能夠參考IIS管理器中對應的屬性,點擊每一個屬性在說明框中都會有屬性的名稱,經過該名稱能夠經過代碼設置對應的值。string