我正在尝试以编程方式更改到我的IIS站点的路径。更改只对其中一个站点(相同的站点)生效,而不是对所有站点生效。有人能看到我做错了什么吗?
using WebAdministration = Microsoft.Web.Administration;
using (WebAdministration.ServerManager serverManager = new WebAdministration.ServerManager())
{
serverManager.Sites.ToList().ForEach(site =>
{
site.Stop();
serverManager.CommitChanges();
//ChangeDirectoryOfSite(site
site.Applications.ToList().ForEach(app =>
{
//ChangeDirectoryOfApplication
//if (app.VirtualDirectories?.Attributes["path"]?.Value...
app.VirtualDirectories.Attributes["path"].Value = ...
//if (app.VirtualDirectories?.Attributes["physicalPath"]?.Value?
app.VirtualDirectories.Attributes["physicalPath"].Value = ...
app.VirtualDirectories.ToList().ForEach(virtualDir =>
{
//ChangeDirectoryOfVirtualDirectoy
//if (virtualDir.Attributes["path"].Value...
virtualDir.Attributes["path"].Value = ...
//if (virtualDir.Attributes["physicalPath"].Value...
virtualDir.Attributes["physicalPath"].Value = ...
}
site.Start()
}
serverManager.CommitChanges();
}
}发布于 2022-07-21 15:53:23
答案是在每次值更改后使用.CommitChanges():
我在下面用// <-- Add this标记了代码更改
using WebAdministration = Microsoft.Web.Administration;
using (WebAdministration.ServerManager serverManager = new WebAdministration.ServerManager())
{
serverManager.Sites.ToList().ForEach(site =>
{
site.Stop();
serverManager.CommitChanges();
//ChangeDirectoryOfSite(site
site.Applications.ToList().ForEach(app =>
{
//ChangeDirectoryOfApplication
//if (app.VirtualDirectories?.Attributes["path"]?.Value...
app.VirtualDirectories.Attributes["path"].Value = ...
serverManager.CommitChanges(); // <--- Add this
//if (app.VirtualDirectories?.Attributes["physicalPath"]?.Value?
app.VirtualDirectories.Attributes["physicalPath"].Value = ...
serverManager.CommitChanges(); // <--- Add this
app.VirtualDirectories.ToList().ForEach(virtualDir =>
{
//ChangeDirectoryOfVirtualDirectoy
//if (virtualDir.Attributes["path"].Value...
virtualDir.Attributes["path"].Value = ...
serverManager.CommitChanges(); // <--- Add this
//if (virtualDir.Attributes["physicalPath"].Value...
virtualDir.Attributes["physicalPath"].Value = ...
serverManager.CommitChanges(); // <--- Add this
}
site.Start()
}
serverManager.CommitChanges();
}
}https://stackoverflow.com/questions/72603501
复制相似问题