Tuesday, March 27, 2007

.NET 2003 與 .NET 2005 之 WebService 開發

一開始是用.NET 2005來開發WebService,在IDE環境下測試時沒問題,但是若嘗試放在Web Server下時,擇一直不成功。後來改用.NET 2003來開發,完成後再用"Project"-"Copy Project"的方式將WebService部署到Web Server上,結果就可以了。後來再回頭用.NET 2005開發,再用"Build"-"Publish"的方式將WebService部署到Web Server上,結果還是不行。後來發現在WebService的內容中有個設定,可以設定ASP.NET的版本,將它由1.1.4322設為2.0.50727後,問題就解決了。

.NET 下的 WebService 開發

最近工作上需要開發一個WebService,因為發現在.NET平台上應該很好開發,所以雖然對C#的語言不熟,但是還是決定以C#來開發。利用Visual Studio.NET 2003的範例,果然很快就做出一個WebService。但是使用IE測試時,卻發現在遠端機器測試時,會出現 "The test form is only available for requests from the local machine" 的訊息。覺得很奇怪,於是上Google查,果然發現有高手已解答,也就是在 web.config 中加入以下文字即可:

<configuration>
<system.web>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</configuration>

Google 啊! 真神啊! Google 真神啊!

Saturday, March 03, 2007

SOAP 處理包含Binary Data 的 XML

最近工作上需要使用 Microsoft 的 SOAP Toolkit 來傳送包含 Binary 資料的 XML。首先是 Client 端的 VB 在將 Binary Data 轉為 String 時,當 ASCII 值大於 128 時,轉換的字串就會發生錯誤,後來改用 URL Encoding 的方式傳送,但是在 Server 端卻會解譯錯誤,因此查詢 XML 文件中是否可以傳送 Binary Data。發現一篇文章使用 base64 的方式來解決,另外也有文章提到將 Binary 資料轉為 Hex String 來處理,我覺得後者應該較單純,可以試試看。