У меня есть служба WCF, которая иногда размещается в IIS, а иногда - в службе Windows.Это необходимо для разных вариантов развертывания моего приложения.Что хорошего в сервисном объекте, чтобы определить, где он находится?
Причина, по которой я хочу, заключается в том, что, когда моя служба размещается в IIS, она получает информацию о строке подключения из файла web.config обычным способом.Когда он размещается службой Windows, он получает информацию о конфигурации другим способом (из информации в реестре).В конструкторе моего сервисного объекта я хочу отметить, откуда можно получить информацию о строке подключения, например, что-то вроде этого:
public void MyServiceObject()
{
_hostedInIis = isHostedInIis();
}
private string ConnectionString()
{
if (_hostedInIis)
return ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
else
return GetConnectionStringFromRegistry();
}
В качестве альтернативы, есть ли способ передать ему некоторую информацию о конфигурации, когдам хостинг внутри службы windows?например, передайте ему строку подключения или флаг, говорящий, что он размещен в службе Windows.