TIPS-在WCF中呼叫Server.MapPath

在ASP.NET/WCF共用元件中,發現在WCF中要透過HttpContext.Current.Server.MapPath查詢實體目錄會發生錯誤。爬文發現,當未開啟ASP.NET相容模式時(aspNetCompatibilityEnabled="true"),WCF將不支援HttpContext, HttpApplication,大部分文章都建議修改<serviceHostingEnvironment aspNetCompatibilityEnabled="true">使WCF可適用ASP.NET傳統做法。

然而,若你不想因此增加config WCF時的額外需求,可考慮改用HostingEnvironment.MapPath 方法取代Server.MapPath():

string t1 = System.Web.HttpContext.Current.Server.MapPath("~");
//以上寫法在WCF未開aspNetCompatibilityEnabled時,
//會因HttpContext.Current == null發生錯誤
        
string t2 = System.Web.Hosting.HostingEnvironment.MapPath("~");
//以上寫法,在WCF與ASP.NET都可運行無誤
歡迎推文分享:
Published 15 February 2011 05:15 PM 由 Jeffrey
Filed under: ,
Views: 9,386



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<February 2011>
SunMonTueWedThuFriSat
303112345
6789101112
13141516171819
20212223242526
272812345
6789101112
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication