2015-10-09 2 views
0

У меня есть небольшая проблема с моей службой WCF, работающей под IIS. В моем сервисе используются сторонние библиотеки. Для инициализации этой библиотеки требуется файл конфигурации, содержащий пути к файлам запросов. Запустив под IIS, эта библиотека не может иметь дело с относительными путями файлов запросов, а именно:. \ Config \ Lib_query.txt и т. Д. По моей причине, причина заключается в том, что служба работает в процессе w3wp. Нет проблем с запуском этого на самообслуживании или даже в модульных тестах.Служба WCF, размещенная на IIS, запущенная в контексте физического каталога

Есть ли способ сообщить IIS работать в другом контексте? Использование AppDomain. CurrentDomain. BaseDirectory и т. Д. Не вариант, потому что у меня нет полномочий внутри этих библиотек. До сих пор я использовал фиксированный путь, но мы переходим к распределенной среде и не заменяем путь в пути конфигурации, это будет огромным удобством.

+1

Это обычно означает, что поставщик библиотеки не тестирует IIS, и он также не предназначен для IIS. Затем вы должны найти другую библиотеку или заставить поставщика предоставить решение. –

+0

В ближайшем будущем я могу использовать REST API, но пока это не вариант. Но в других случаях, если я сделал sth, например, в среде с собственными хостами, и он работает, я должен ожидать, что в другой среде хостинга он должен работать, но, видимо, этого не произошло. – Kuba

ответ

0

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

См Defining a working directory for executing a program (C#). Вы можете сделать это в начале приложения вашего global.asax.

+0

Я думаю, что я попытался изменить каталог, используя Directory.SetCurrentDirectory(), но это не помогло. Чтобы быть уверенным, что я попытаюсь сыграть больше с ним и поместить его в разные места. Благодарю. – Kuba

+0

Он должен работать. IIS работает в system32 или inetsrv, поэтому относительный путь не работает изначально. Попробуйте SetCurrentDirectory с жестким кодом вашего базового каталога. – CodeCaster

+0

Я положил это в Global.asax, сделав некоторые настройки и работу. Спасибо, парни. Береги себя. – Kuba

Смежные вопросы