У меня есть служба WCF , которую я размещаю в Windows Service .Я сделал свою службу Windows для входа в систему как сетевую службу.В файле App.config моей службы Windows я указываю строку подключения, как показано ниже
<connectionStrings>
<add name="MyConnetcionString" providerName="Oracle.DataAccess.Client"
connectionString="Data Source=tdb1;User ID=xxx;Password=xxx;
Persist Security Info=true;Pooling=false" />
</connectionStrings>
Я могу установить и запустить службу Windows.Я также проверяю, работает ли моя служба WCF.Но когда я выполняю клиентские вызовы, я получаю ошибку ниже на стороне службы WCF
ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения
Myпроблема в том, что моя служба Windows (служба размещения) не может прочитать мои tnsnames.ora
Я даже изменил свою переменную среды TNS_ADMIN на папку на диске C, где у меня есть tnsnames.ora, но она не работает.
Все работает нормально, если я размещаю службу WCF в консольном приложении.Но мы хотим, чтобы служба Windows размещала службу WCF.
Моя служба работает с C: \ Dept \ ServerWindowsHost \ bin \ Debug
Я видел ниже, но не работал, так как Я не могу развернутьмоя строка подключения .Я попытался расширить его, и он работает нормально.
Не удается подключиться к Oracle из службы Windows (ошибка: ORA-12154: TNS: не удалось разрешить имя службы (12154))
РЕШЕНИЕ
Мне удалось решить эту проблему.Для решения этой проблемы я использовал монитор процессов.
https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Он четко показал, в каких местах мой windows-сервис ищет tnsnames.ora.Я просто скопировал tnsnames.ora в эти папки, и все работало нормально.