为什么当我使用服务器管理器在 IIS 中创建站点时 ASP.NET 设置不显示

本文关键字:站点 创建 ASP NET 显示 设置 IIS 服务器 管理器 为什么 | 更新日期: 2023-09-27 18:37:14

当我由于某种原因使用 ServerManager 创建我的站点时,asp.net 设置未显示在 IIS 中,但是如果我手动创建站点并将其指向目录,一切正常,我得到了所有设置。我一直在寻找几个小时,试图弄清楚我做错了什么,但没有运气。

这是我的代码

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

为什么当我使用服务器管理器在 IIS 中创建站点时 ASP.NET 设置不显示

>ApplicationDefaults不是为您的网站设置池的正确位置。

从路径为"/"的Site.Applications中查找根应用程序,然后将其ApplicationPoolName设置为之前创建的池。

这可以帮助您关联正确的应用程序池,它的工作方式与您在 IIS 管理器中创建的应用程序池一样。