2016-03-02 19 views
0

當我創建我的網站使用ServerManager出於某種原因的asp.net設置沒有顯示在IIS中,但如果我手動創建網站,並指向目錄一切工作正常,我得到所有的設置。我一直在尋找幾個小時試圖找出我沒有運氣的錯誤。當我使用ServerManager在IIS中創建站點時,爲什麼ASP.NET設置不顯示?

這裏是我的代碼

int sleep = 3000; 

Console.WriteLine(@"Installing Connections AD Sync UI\Services..."); 

//Extract Files 
Console.WriteLine(@"Extracting required files..."); 
FileInfo info = new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location); 
System.IO.File.WriteAllBytes(info.DirectoryName + @"\Payload.zip", ConnectionsADSyncInstaller.Properties.Resources.ConnectionsADSync); 
ZipFile.ExtractToDirectory(info.DirectoryName + @"\Payload.zip", info.DirectoryName); 
File.Delete(info.DirectoryName + @"\Payload.zip"); 

Thread.Sleep(sleep); 


//Create IIS Site/Settings 
ServerManager iisManager = new ServerManager(); 
Console.WriteLine("Setting up IIS application pool..."); 
ApplicationPool myApp = iisManager.ApplicationPools.Add("ConnectionsADSync"); 
myApp. 
myApp.AutoStart = true; 
myApp.ManagedPipelineMode = ManagedPipelineMode.Integrated; 
myApp.ManagedRuntimeVersion = "V4.0"; 
myApp.ProcessModel.IdentityType = ProcessModelIdentityType.ApplicationPoolIdentity; 
myApp.Enable32BitAppOnWin64 = true; //unsure... 
Console.WriteLine("Configuring ConnectionsADSync web site in IIS..."); 

iisManager.CommitChanges(); 
Thread.Sleep(sleep); 



//Give AppPool user permissions 
Console.WriteLine("Configuring folder permissions for IIS application pool..."); 
DirectoryInfo myDirectoryInfo = new DirectoryInfo(info.DirectoryName + @"\ConnectionsADSync\ConnectionsADSyncWeb"); 
DirectorySecurity myDirectorySecurity = myDirectoryInfo.GetAccessControl(); 
myDirectorySecurity.AddAccessRule(new FileSystemAccessRule(@"IIS APPPOOL\ConnectionsADSync", FileSystemRights.ReadAndExecute, AccessControlType.Allow)); 
myDirectoryInfo.SetAccessControl(myDirectorySecurity); 

Thread.Sleep(sleep); 

//Create the site 
Site newSite = iisManager.Sites.Add("ConnectionsADSync", info.DirectoryName + @"\ConnectionsADSync\ConnectionsADSyncWeb", 8089);//D:\\ConnectionsADSync 
newSite.ApplicationDefaults.ApplicationPoolName = "ConnectionsADSync"; 
newSite.ServerAutoStart = true; 

iisManager.CommitChanges(); 
Thread.Sleep(sleep); 

//Install Service 
Console.WriteLine("Installing ConnectionsADSyncService (Windows Service)..."); 
Process proc = Process.Start(info.DirectoryName + @"\ConnectionsADSync\ConnectionsADSyncService\installer.bat"); 
proc.WaitForExit(); 
ServiceController service = new ServiceController("~ConnectionSyncServer"); 
service.Start(); 

Thread.Sleep(sleep); 


Console.WriteLine("Installation complete, press Enter to exit"); 
Console.ReadLine(); 
enter code here 
+0

所以它看起來像它,因爲它沒有設置正確的.Net框架版本 – dtv8997

+0

你甚至沒有設置正確的應用程序池。查看我更新的答案,瞭解如何使用API​​的更多詳細信息。 –

回答

0

ApplicationDefaults是不是要設置爲你的網站池中的正確的地方。

從路徑爲「/」的Site.Applications查找根應用程序,然後將其ApplicationPoolName設置爲您先前創建的池。

這可以幫助您關聯正確的應用程序池,它將工作就像您在IIS管理器中創建的一樣。

相關問題