【发布时间】:2018-11-22 22:22:05
【问题描述】:
我有一个使用 Microsoft.Web.Administration 命名空间中的服务器管理器对象创建应用程序和应用程序池的进程,首先创建应用程序池,然后创建应用程序,将新创建的应用程序池分配给应用程序,代码下面。
protected TResult UseServerManagerWrapper<TResult>(Func<ServerManager, TResult> func)
{
using (var serverManager = new ServerManager())
{
return func(serverManager);
}
}
应用创建函数
public void CreateApplication(String siteName, String parentApplicationName, String organisationName, String applicationName, String applicationPoolName)
{
UseServerManagerWrapper(serverManager =>
{
var site = serverManager.Sites[siteName];
var newApplication =
site.Applications.Add(
GetApplicationPath(parentApplicationName, organisationName, applicationName),
this.GetGeneratedApplicationPhysicalPath(siteName, parentApplicationName, organisationName, applicationName));
newApplication.ApplicationPoolName = applicationPoolName;
serverManager.CommitChanges();
return true;
});
}
和应用程序池创建。
public Boolean CreateApplicationPool(String applicationPoolName)
{
return UseServerManagerWrapper(serverManager =>
{
var appPool = serverManager.ApplicationPools.Add(applicationPoolName);
appPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
appPool.ManagedRuntimeVersion = "";
serverManager.CommitChanges();
return true;
});
}
这一切都很好,我唯一的问题是我必须进入应用程序文件夹并手动为应用程序池分配权限。
我在 ServerManager 文档中看不到任何可以帮助我的内容,而且我无法找到使用 Directory.SetAccessControl 方法来授予应用程序池权限的方法。有没有办法在代码中做到这一点?
如果我使用了错误的术语或其他任何内容,我深表歉意,我是一般出版的新手。如果您需要更多信息,请告诉我。
【问题讨论】:
标签: iis asp.net-core permissions application-pool asp.net-core-2.1