Читайте TNSNAMES.ORA, когда служба WCF размещена в службе Windows - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть служба 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 в эти папки, и все работало нормально.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...