12三月/120
在 WCF 中使用 HttpContext 無法初始化解決方案
前言
WCF 服務應用程式可以掛載到 IIS 來執行,所以也可以算是一種 Web 的專案,所以很自然的就會使用 HttpContext,但是執行的時候卻會發現 HttpContext 的值是 Null,花了點時間找了資料才發現,原來是需要特別設定才可以運作,本文就簡單說明該如何處理。
說明
首先開一個預設的 WCF 專案
打開 Service1.svc.cs 將 GetData 改成以下內容
1 2 3 4 |
public string GetData(int value) { return string.Format("Your HttpMethod: {0}", HttpContext.Current.Request.HttpMethod); } |
然後執行並且呼叫程式,此時會出現下面的錯誤訊息,而 HttpContext 的值也會是空的
雖然 WCF 可以跑在 IIS 下面,也可以和 ASP.Net 並存,但是要可以使用 HttpContext 得啟用 ASP.Net 相容性模式,這樣才有辦法使用,而啟用的方法很簡單,在 Web.config 區段 <serviceHostingEnvironment> 加入 aspNetCompatibilityEnabled="true" 組態就可以囉!
1 |
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" /> |
結論
本篇文章雖然很簡單,但是對於初次接觸 WCF 的開發者(像我)就很可以忽略這樣的設定而執行時候產生了錯誤,希望本篇分享對於遇到一樣問題的網友能有一點幫助囉!
Leave a comment