IIS

2009-06-20 26 views
7

'da barındırılan WCF hizmetindeki göreli yollar Genel bir Silverlight 2.0 uygulaması tarafından erişilecek WCF'de hızlı veri hizmetini bir araya getiriyorum. Verilerim çok statik ve nispeten basit olduğu için, onu sadece yerel XML dosyalarında saklamak istiyorum (ki bu da hiç bir zaman düzenleyecek çok sınırlı sayıda insan olduğu için daha kolay hale geliyor).IIS

Hizmetimden göreceli bir yol bulmanın en iyi yolunun ne olacağını merak ediyorum. Geleneksel ASP.NET'te Server.MapPath .... kullanabilirsiniz bu WCF hizmeti içinde benzer hiçbir şey kullanılabilir. Bu çözüm nihayetinde bir kontrol sağlayıcısında barındırılacak ve herhangi bir sabit konumun kodunu değiştiremem. AppData klasörümdeki bazı XML dosyalarının göreceli bir yolunu bulmayı tercih ederim.

Herhangi bir öneriniz var mı?

cevap

11

Sen, sonunda hala olmadığından hala ASP.NET sayfaları gibi aynı şeyleri (bir çok erişebilir Environment.CurrentDirectory veya AppDomain.CurrentDomain.BaseDirectory

+4

AppDomain.CurrentDomain.BaseDirectory doğru yolu döndürür. Ama Environment.CurrentDirectory, {program files} klasörünün içinde bir kaç yol döndürüyor gibi görünüyor. Yardım ettiğin için teşekkür ederim. –

2

WCF hizmetlerini kullanarak deneyin olabilir HTTP isteği ve yanıtı). Hala şöyle Server.MapPath kullanabilirsiniz:

HttpContext.Current.Server.MapPath(...) 
+1

Bu yalnızca ASP.NET uyumluluk modunu etkinleştirirseniz çalışır ve mevcut bir ASMX web hizmetini WCF'ye yüklemek istemezseniz, bunu yapmak için herhangi bir neden yoktur. –

0

Birincisi, geçerli dizin dönmek için hizmet için bir operasyon ekleyin. Yeni işlemin sadece Environment.CurrentDirectory değerini döndürmesini sağlayın. İstemcideki mevcut dizinin ne olduğuna şaşıp şaşırmadığını kontrol edin. Gerektiği şekilde ayarlayın.

1

Dosyaları, uygulama için klasörünüz yerine IsolatedStorage'da saklayabilirsiniz. Nasıl çalıştığını görmek için bağlantılı sayfadaki örneğe bakın.