Относительные пути в службе WCF, размещенной в IIS - PullRequest
7 голосов
/ 20 июня 2009

Я собираю быстрый сервис данных в WCF для доступа к общедоступному приложению Silverlight 2.0. Поскольку мои данные очень статичны и относительно просты, я бы хотел просто сохранить их в локальных файлах XML (что стало проще, поскольку ОЧЕНЬ ограниченное количество людей будет когда-либо редактировать их).

Мне интересно, каким будет лучший способ найти относительный путь из моего служения. В традиционном ASP.NET я мог использовать Server.MapPath .... внутри этой службы WCF ничего подобного не доступно. В конечном итоге это решение будет размещено у хостинг-провайдера, над которым у меня нет контроля, поэтому я не могу жестко закодировать фиксированные местоположения. Я бы предпочел просто получить относительный путь к некоторым файлам XML в моей папке AppData.

Есть предложения?

Ответы [ 5 ]

11 голосов
/ 20 июня 2009

Вы можете попробовать использовать Environment.CurrentDirectory или AppDomain.CurrentDomain.BaseDirectory

4 голосов
/ 20 июня 2009

Попробуйте использовать HostingEnvironment.ApplicationPhysicalPath .

2 голосов
/ 20 июня 2009

Службы WCF по-прежнему имеют доступ ко многим тем же, что и ваши страницы ASP.NET (поскольку, в конце концов, все еще есть HTTP-запрос и ответ). Вы все еще можете использовать Server.MapPath так:

HttpContext.Current.Server.MapPath(...)
1 голос
/ 05 августа 2011

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

0 голосов
/ 21 июня 2009

Сначала добавьте операцию в службу, чтобы вернуть текущий каталог. Пусть новая операция просто вернет Environment.CurrentDirectory. В клиенте проверьте, удивляет ли вас текущий каталог. Отрегулируйте при необходимости.

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