WCF: несколько служб в одном проекте, размещенном на IIS, но разные разрешения? - PullRequest
0 голосов
/ 14 апреля 2011

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

Когда я создал существующую службу, я добавил проект службы WCF в наше существующее решение, а затем создал новый "WCF".«Служба» и отредактировал его.
Итак, в Visual Studio макет папки выглядит следующим образом:

\MyServiceProject\IMyFirstService.cs
\MyServiceProject\MyFirstService.cs
\MyServiceProject\MyFirstService.csproj
\MyServiceProject\MyFirstService.svc
\MyServiceProject\Web.config

У нас есть скрипт сборки, который компилирует вещи и копирует файлы, а затем публикует папку в IISвыглядит так:

\MyFirstService\bin\MyServiceProject.dll
\MyFirstService\MyFirstService.svc
\MyFirstService\Web.config

(если я правильно помню, он работал только тогда, когда DLL находилась в подпапке с именем «bin», отсюда и копирование в сценарии сборки)

Теперь я хочу добавить еще один файл .svc.
Я бы предпочел не создавать второй проект службы WCF ... Я хотел бы добавить новую службу ввместо существующего проекта.

НО: второй сервис должен иметь права, отличные от первого (ограниченный внешний доступ, но для разных клиентов ...).
По словам нашего администратора, я должен поставитьвторой сервис во второй папке, чтобы мы могли предоставить ему другие разрешения.
Таким образом, развернутые сервисы должны выглядеть следующим образом:

\MyFirstService\MyFirstService.svc
\MySecondService\MySecondService.svc

Но это также означает, что другие файлы должны будутбыть дублированным:

\MyFirstService\bin\MyServiceProject.dll
\MyFirstService\Web.config
\MySecondService\bin\MyServiceProject.dll
\MySecondService\Web.config

Меня не волнует дублирование MyServiceProject.dll, но как насчет Web.config?
В Visual Studio есть только один файл, и если я хочу запустить службы вВ режиме отладки я должен добавить к нему обе службы.
Или я могу как-то разделить файл web.config, чтобы он работал в Visual Studio (когда обе службы находятся в одной папке) и развернут на IIS (где каждая службаесть своя папка)?

Есть идеи как это решить?
Или я что-то делаю совершенно неправильно?Этот материал WCF для меня совершенно новый, и все, что я до сих пор делал, было взломано вместе с помощью Google ...

1 Ответ

1 голос
/ 14 апреля 2011

Вы можете использовать эту статью - Иерархия и наследование файлов конфигурации ASP.NET

чтобы установить иерархию web.config в IIS. Поместите две службы в подкаталог в одно корневое приложение, которое будет содержать общий файл web.config.

...