Программная настройка и размещение службы WCF в IIS



Как программно настроить и разместить службу WCF в IIS. Я создал свой пример службы WCF / WCFServices / Service1.ВПВ". Я хочу программно настроить и разместить эту службу в IIS. Может ли кто-нибудь помочь мне в этом?

519   3  

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. вы можете сделать это либо в коде, либо в конфигурации.

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

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

Взгляните на msdeploy, средство упаковки и развертывания командной строки:

Comments

    Ничего не найдено.