2013-07-19 17 views

ответ

3

Класс, который вы хотите, это Microsoft.Web.Administration.ServerManager

http://msdn.microsoft.com/en-us/library/microsoft.web.administration.servermanager(v=VS.90).aspx

У этого есть методы для управления большинством аспектов IIS, например, добавления пулов приложений и приложений. Например, этот код настраивает новое приложение IIS

//the name of the IIS AppPool you want to use for the application - could be DefaultAppPool 
string appPoolName = "MyAppPool"; 

//the name of the application (as it will appear in IIS manager) 
string name = "MyWCFService"; 

//the physcial path of your application 
string physicalPath = "C:\\wwwroot\mywcfservice"; 


using (ServerManager serverManager = new ServerManager()) 
    { 
     Configuration config = serverManager.GetApplicationHostConfiguration(); 
     ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites"); 
     ConfigurationElementCollection sitesCollection = sitesSection.GetCollection(); 
     ConfigurationElement siteElement = sitesCollection[0]; 
     ConfigurationElementCollection siteCollection = siteElement.GetCollection(); 
     ConfigurationElement applicationElement = siteCollection.CreateElement("application"); 
     applicationElement["path"] = name; 
     applicationElement["applicationPool"] = appPoolName; 
     ConfigurationElementCollection applicationCollection = applicationElement.GetCollection(); 
     ConfigurationElement virtualDirectoryElement = applicationCollection.CreateElement("virtualDirectory"); 
     virtualDirectoryElement["path"] = @"/"; 
     virtualDirectoryElement["physicalPath"] = physicalPath; 
     applicationCollection.Add(virtualDirectoryElement); 
     siteCollection.Add(applicationElement); 
     serverManager.CommitChanges(); 
    } 

В общем, Calss просто тонкая оболочка вокруг файла конфигурации IIS. Вы можете понять это, посмотрев на ваш существующий файл или даже посмотрев, что вам нужно сделать в диспетчере IIS, чтобы настроить службу вручную, а затем перевести ее в результирующую конфигурацию.

Вы можете сделать все (по крайней мере, много) конфигурацию IIS таким образом (например, настроить дросселирование приложения, включить схемы аутентификации и т. Д.).

WCF часть конфигурации - это обычный WCF. вы можете сделать это либо в коде, либо в конфигурации.

+0

Спасибо за ваш ответ. Не могли бы вы объяснить в своем коде ... имя, appPoolName и physicalPath? Я немного запутался между именем и физическим путем. –

+0

Извините за это. Я обновил свой ответ, чтобы объяснить. –

+0

Спасибо большое Майку !!! –

0

То, что вы ищете, называется Publish. это из контекстного меню правой кнопки мыши в проекте WCF Service. Вы можете опубликовать оттуда или создать пакет для публикации позже или распространить его на удаленный сайт. В сети есть много учебников.

Если вы задайте конкретный вопрос об этой функции, не стесняйтесь спрашивать.

+0

Да Publish только. но я хочу сделать это с помощью программно ... Я имею в виду, через какое-то консольное приложение я хочу опубликовать мою службу WCF в IIS. –

+0

Как публиковать программно с помощью Powershell и/или C#? – Kiquenet

Смежные вопросы