在IIS7中通过MS.Web.Admin创建Web应用程序
问题描述:
我试图在IIS7中使用Microsoft.Web.Administration dll创建单独的工作流实例作为应用程序。当它试图将应用程序添加到网站ApplicationsCollection我得到一个COM错误:“无效的应用程序路径\ r \ n”个在IIS7中通过MS.Web.Admin创建Web应用程序
using (ServerManager manager = new ServerManager())
{
var site = manager.Sites.Where(x => x.Name == Properties.Settings.Default.WorkflowWebsiteName).Single();
StringBuilder stringBuilder = new StringBuilder()
.Append(m_workflowDefinition.AccountId)
.Append("/")
.Append(m_workflowDefinition.WorkflowDefinitionId)
.Append("/")
.Append(m_workflowDefinition.Version)
.Append("/");
string virtualPath = stringBuilder.ToString();
string physicalPath = Properties.Settings.Default.ApplicationPoolString +
virtualPath.Replace("/", "\\");
if (!Directory.Exists(physicalPath)) Directory.CreateDirectory(physicalPath);
//Create the workflow service definition file
using (StreamWriter writer = new StreamWriter(Path.Combine(physicalPath, m_workflowDefinition.WorkflowName + WORKFLOW_FILE_EXTENSION)))
{
writer.Write(m_workflowDefinition.Definition);
}
//Copy dependencies
string dependencyPath = m_workflowDefinition.DependenciesPath;
CopyAll(new DirectoryInfo(dependencyPath), new DirectoryInfo(physicalPath));
//Create a new IIS application for the workflow
var apps = site.Applications.Where(x => x.Path == virtualPath);
if (apps.Count() > 0)
{
site.Applications.Remove(apps.Single());
}
Application app = site.Applications.Add(virtualPath, physicalPath);
app.ApplicationPoolName = "Workflow AppPool";
app.EnabledProtocols = PROTOCOLS;
manager.CommitChanges();
}
分配给virtualPath的值是这样的:“东西/某事/某事”和physicalPath它是“c:\ inetpub \ wwwroot \ Workflow \ something \ something \ something”。有任何想法吗?
任何帮助,非常感谢。
答
尝试将您的“某物/某物/某物”路径更改为“/某物/某物/某物”。 IIS管理调用在路径开始处需要额外的斜杠。
谢谢!这正是问题所在。 – 2010-04-13 14:37:58