Domanda

Sto tentando di creare istanze di flusso di lavoro sepate come applicazioni in IIS7 utilizzando Microsoft.Web. Adomminister DLL. Quando tenta di aggiungere l'applicazione alla collection delle applicazioni del sito ricevo un errore com: "Percorso dell'applicazione non valido r n"

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();
            }

Il valore assegnato a VirtualPath è come: "qualcosa/qualcosa/qualcosa" e per PhysicalPath è "C: iNetPUB wwwroot workflow qualcosa qualcosa qualcosa". Qualche idea?

Qualsiasi aiuto è molto apprezzato.

È stato utile?

Soluzione

Prova a cambiare il tuo percorso "qualcosa/qualcosa/qualcosa" a "/qualcosa/qualcosa/qualcosa". La chiamata amministrativa IIS ha bisogno della barra extra all'inizio del percorso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top