上回介紹過讓WCF支援AJAX Scripting的方法,今天才發現,加上[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]及修改web.config設定的步驟,其實VS2008就可以代勞。

如下圖,新增WCF時,選擇AJAX-enabled WCF Service,產生的WCF就是AJAX Scripting專用的。

我發現的主要差別包括:

  1. 不會額外多宣告一個Interface
  2. 會自動加上[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  3. web.config裡自動加上enpointBehaviors裡的宣告,並設定enabledWebScript。

換句話說,原本手工調整WCF web.config的設定都可以省了,要好好利用!


Comments

# by Alexsuper

Dear Sir: 請教您, 我在部署 AJAX-ENABLED WCF SERVICE 時, 若 在 IIS 7 取消勾選 ANONYMOUS 選項時, 會無法使用, 不知在 WEB.CONFIG 要如何設定, 才用辦法讓我的 SERVICE 只能透過 WINDOWS 整合式驗證呼叫呢...@@"

# by Jeffrey

to Alexsuper, 我有兩篇相關文章,可參考看看: 1.http://bit.ly/cS2zls TIPS-設定WCF使用Windows認證 2.http://bit.ly/aBf3Vf 【茶包射手專欄】跨機器之WCF認證問題

# by Alexsuper

Dear Jeffery: Sorry, 現在才回覆感謝之意, 依您的方法我已成功在敝公司導入 Ajax-enabled WCF 的程式撰寫方式. 執行至今均 OK 且效果良好, 但最近我們公司遇到 asp.net 不知何處會發生 memory leak 的問題, 其中又以有使用 Ajax-enabled WCF 的 solution 最常遇到. 目前我們暫且先以 hardware 加上資源管理(減少不要必的 job 運行)來處理, 但我心裡怕的是 Ajax-enabled WCF 的機制不知是否有資源釋放上的問題, 雖然查了 Google 大神均未明確說 WCF 會有這問題, 但為求保險起見, 仍詢問一下高手的意見會好些, 以避免大量部署後可能遇到無法即時更版的需求...:P 抱歉打擾您了!

# by Jeffrey

to Alexsuper, 我倒也沒有聽過因"WCF"造成Memory Leak的問題,我認為比較有可能跟WCF程式的寫法有關。Memory Leak的問題不太好測,真的要排除WCF是問題來源的疑慮,必須用將完全相同的程式邏輯分別以ASP.NET、WCF實做一份,並壓力測試到出現Memory Leak,看來是個浩大的工程。

Post a comment