簡體   English   中英

C#在asp.net項目中以編程方式在IIS中創建站點

[英]C# create site in IIS programatically in asp.net project

我正在嘗試使用C#中的Microsoft.Web.Administration dll在IIS中創建一個站點。 我正在使用以下代碼

using (var serverManager = new ServerManager())
        {
            ApplicationPool pool = serverManager.ApplicationPools.Add(ClientDomain);
            pool.ManagedRuntimeVersion = "v4.0";
            Site site = serverManager.Sites.Add(SiteName, httpProtocol, httpBindingInformation, physicalPath);
            site.Bindings.Add(httpsBindingInformation, httpsProtocol);
            serverManager.CommitChanges();
        }

當我從asp.net項目運行代碼但是如果從控制台項目運行相同的代碼時,我得到以下異常“方法或操作未實現”,它工作正常。 以下是例外的詳細信息

   at Microsoft.Web.Administration.Interop.IAppHostProperty.get_Value()
   at Microsoft.Web.Administration.ConfigurationElement.GetPropertyValue(IAppHostProperty property)
   at Microsoft.Web.Administration.ConfigurationElement.GetAttributeValue(String attributeName)
   at Microsoft.Web.Administration.Binding.get_CertificateHash()
   at Microsoft.Web.Administration.BindingCollection.Add(Binding binding)
   at Microsoft.Web.Administration.BindingCollection.Add(String bindingInformation, String bindingProtocol)
   at TestProject.BLL.CRMSiteManagement.CRMSiteIISSetup.Process() in e:\CRMSiteManagement\CRMSiteIISSetup.cs:line 35
   at TestProject.BLL.CRMSiteManagement.CRMSiteService.CreateNewCRMSite(CRMSite newSite) in e:CRMSiteManagement\CRMSiteService.cs:line

似乎是權利問題,但我不知道如何解決它。 更新1:在localhost上的以下代碼行發生錯誤

site.Bindings.Add(httpsBindingInformation, httpsProtocol); 

我想你試圖兩次設置相同的綁定:

  1. 一旦調用Add方法

Site site = serverManager.Sites.Add(SiteName, httpProtocol, httpBindingInformation, physicalPath);

  1. 然后再次添加相同的綁定:

site.Bindings.Add(httpsBindingInformation, httpsProtocol);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM