線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2465
推到 Plurk!
推到 Facebook!

請問WebService怎會傳出整個程式碼(WebService本體)?(Delphi 2009)

答題得分者是:pcplayer99
Darren.NET
一般會員


發表:3
回覆:3
積分:1
註冊:2008-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-04 01:58:15 IP:122.125.xxx.xxx 訂閱
小弟剛接觸delphi, 使用Delphi 2009寫WebService (Web App Debugger exeutable) - 自資料庫蒐集資料,再將DataSet資料讀出轉成字串(XML)傳出,編譯後放到 IIS 6.0執行 (http://localhost/MyService/WB.exe?GetAllData) 得到是一堆亂碼(WebService本體)

請教各位先進哪裡出了問題呢?附件SoureCode

(傳錯檔已更新附檔)
附加檔案:490f3bb7b87d8_123.rar
編輯記錄
Darren.NET 重新編輯於 2008-11-12 08:43:20, 註解 無‧
Darren.NET 重新編輯於 2008-11-12 08:44:42, 註解 無‧
pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-04-01 19:58:28 IP:121.15.xxx.xxx 訂閱
你的问题描述得比较清楚。

但你对 WebServices 的概念不清楚。

WebServices 是指通过 WEB 的方式,输出函数调用结果给客户端。

而所谓的 WEB 方式,是指客户端和服务器端之间,通过 TCP 通讯,以符合 HTTP 协议的方式来互相传递 DATA。

一般所谓的 WEB,是指用 IIS (APACHE 或者其它 WEB SERVER 也可以)这样的 WEB SERVER 程式,工作在 PORT 80,来响应客户端的 HTTP 请求。如果这个 HTTP 请求的是一个 CGI (在 WINDOWS 下就是一个 XXX.EXE),则 IIS 会去执行这个 CGI 并把 CGI 执行后输出的结果返回给客户端。

你的问题是,你的 (Web App Debugger exeutable) 它不是一个 CGI,它是一个独立的可执行程式!它执行起来以后,它自己会打开一个 TCP PORT,用来响应客户端的请求,实现 WEB SERVER 的功能。因此,它独立运行,不需要 IIS !

你把这样一个程式放到 IIS 底下,客户端访问它的时候, IIS 当然不会去执行它,就算执行,也不会有什么符合预期的结果。IIS 只当是你请求了一个 FILE,因此 IIS 就把这个 FILE 下载给你。

明白这个概念后,你该知道你的错误是什么了。

实际上,采用
(Web App Debugger exeutable) 的方式开发完成后,你需要把你的程式转换为一个 CGI 或者一个 ISAPI ,才能放到 IIS 底下去执行。如果你的访问量不是很大,干脆直接用 (Web App Debugger exeutable) 模式作为服务器端,不需要 IIS,也是可以的。

===================引 用 Darren.NET 文 章===================
小弟剛接觸delphi, 使用Delphi 2009寫WebService (Web App Debugger exeutable) - 自資料庫蒐集資料,再將DataSet資料讀出轉成字串(XML)傳出,編譯後放到 IIS 6.0執行 (http://localhost/MyService/WB.exe?GetAllData) 得到是一堆亂碼(WebService本體)

請教各位先進哪裡出了問題呢?附件SoureCode

(傳錯檔已更新附檔)
系統時間:2017-12-12 16:28:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!