MC, 23:45 niedziela, 26.05.2013 r.
Ilustracja do artykułu: WCF - Mapowanie ścieżek, czyli funkcja MapPath() pomimo braku HttpContext

WCF - Mapowanie ścieżek, czyli funkcja MapPath() pomimo braku HttpContext

Artykuł, który może się okazać pomocny w przypadku potrzeby przetworzenia relatywnej ścieżki do pliku na absolutną w serwisie Windows Communication Foundation (WCF).

W czym problem?

Ludzie mający pewne obycie z aplikacjami tworzonymi w ASP.NET, w obliczu tak postawionego problemu mogą zechcieć szukać pomocy w obiekcie HttpContext, a dokładniej w metodzie HttpContext.Current.Server.MapPath(). Wszystko byłoby dobrze, gdyby nie fakt, że obiekt HttpContext jest nullem w domyślnym przypadku serwisu WCF hostowanym na IIS. Jaka jest zatem alternatywa dla metody HttpContext.Current.Server.MapPath()?

Wykorzystajmy obiekt HostingEnvironment!

Rozwiązaniem będzie użycie obiektu HostingEnvironment pochodzącego z przestrzeni nazw System.Web.Hosting, który również posiada zaimplementowaną metodę MapPath(). A używa jej się dokładnie tak samo jak w przypadku HttpContext-u:
string absolutnaSciezka = HostingEnvironment.MapPath("~/App_Data/DowolnyPlik.txt");

Tym prostym sposobem możemy zmapować relatywną ścieżkę, na ścieżkę bezwzględną, istniejącą w systemie hostującym aplikację.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: