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

IntraWeb 如何在IIS中執行

答題得分者是:pcplayer99
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-11 09:11:36 IP:203.72.xxx.xxx 未訂閱
在Delphi7.0中直接按下run執行沒問題, 它的url是http://127.0.0.1:4468/EXEC/0/9C17D90021AD1D2D6CBBE240 但是如果停止執行run, 直接在ie裡頭鍵入http://localhost/IW/IWProject.exe 卻出現 CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: 請問該如何設定IIS方可讓intraweb開發的cgi順利執行. 謝謝
shinjie
資深會員


發表:12
回覆:275
積分:287
註冊:2003-03-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-11 16:35:30 IP:61.59.xxx.xxx 未訂閱
請參考 http://www.dreams.idv.tw/~code6421/Doc/Deploy.htm http://202.101.237.86/xiaohua/shownews.asp?newsid=356 我是用Delphi 2005測試,錯誤訊息跟您的不一樣。 發表人 - shinjie 於 2005/01/11 16:46:39
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。
得之;我幸。不得;我命。
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-11 19:35:57 IP:219.134.xxx.xxx 未訂閱
你可能没搞明白WEB SERVER程序的执行模式。 通常的WEB SERVER,都是执行在SERVER端,客户端的浏览器访问SERVER的IP/PORT,通常那个IP/PORT后是IIS这样的WEB SERVER,然后再由IIS(或APACHE)去运行你写的SERVER程序,然后IIS再将程序生成的HTML结果送回给客户端的浏览器。 这种模式,不管SERVER端是PHP/ASP/JSP等写的SERVER端的SCRIPT还是用C /DELPHI写的CGI/ISAPI/DSO等真正的可执行的代码,都是通过上面描述的过程来完成的。 而你在DELPHI里直接RUN的IntraWeb的程序,则没有IIS这样的WEB SERVER,而是程序自己就已经带了WEB SERVER!在这个程序内部,还是先由WEB SERVER接收来自客户端的访问,再把访问请求转向IntraWeb的元件。简单地说,那个程序本身包含了类似IIS的WEB SERVER和类似CGI的程序两部分。 这样的程序是没法让IIS去跑的。它自己就能跑,不需要IIS。 要放到IIS下去跑,你只需要把你的IntraWeb的Project转化为一个ISAPI的Project,然后把编译好的ISAPI(是一个DLL File)放到ISAPI下,设置ISAPI的虚拟路径有执行ISAPI的权限就可以了。这样一来,你访问你的IIS,比如:http://localhost/yourVpath/yourIntraWeb.dll,你的IIS就去把yourIntraWeb.dll RUN起来,让你看到结果了。
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-11 23:24:11 IP:220.138.xxx.xxx 未訂閱
引言: 你可能没搞明白WEB SERVER程序的执行模式。 通常的WEB SERVER,都是执行在SERVER端,客户端的浏览器访问SERVER的IP/PORT,通常那个IP/PORT后是IIS这样的WEB SERVER,然后再由IIS(或APACHE)去运行你写的SERVER程序,然后IIS再将程序生成的HTML结果送回给客户端的浏览器。 这种模式,不管SERVER端是PHP/ASP/JSP等写的SERVER端的SCRIPT还是用C /DELPHI写的CGI/ISAPI/DSO等真正的可执行的代码,都是通过上面描述的过程来完成的。 而你在DELPHI里直接RUN的IntraWeb的程序,则没有IIS这样的WEB SERVER,而是程序自己就已经带了WEB SERVER!在这个程序内部,还是先由WEB SERVER接收来自客户端的访问,再把访问请求转向IntraWeb的元件。简单地说,那个程序本身包含了类似IIS的WEB SERVER和类似CGI的程序两部分。 这样的程序是没法让IIS去跑的。它自己就能跑,不需要IIS。 要放到IIS下去跑,你只需要把你的IntraWeb的Project转化为一个ISAPI的Project,然后把编译好的ISAPI(是一个DLL File)放到ISAPI下,设置ISAPI的虚拟路径有执行ISAPI的权限就可以了。这样一来,你访问你的IIS,比如:http://localhost/yourVpath/yourIntraWeb.dll,你的IIS就去把yourIntraWeb.dll RUN起来,让你看到结果了。
謝謝pcplayer99,shinjie兩位大哥; 我現在一直停留在以往利用WebModule開發cgi的觀念中, 以往利用Delphi WebModule開發CGI即使你採用Stand-alone完成的.exe檔, 只要將他的所在位置資料夾利用IIS設定一個虛擬目錄給他,例如:IW 那麼Client只要透過browser在url欄位鍵入http://servername/IW/Project.exe, 就可以得到response. so我一直認為利用IntraWeb應該也是這樣,而且他這麼厲害,以往你開發cgi都要一邊設好IIS的虛擬目錄,開啟瀏覽器,連到你所設的cgi,一邊code一邊由browser測試,看看程式對不對.現在都不必啦...直接在ide終究可見分曉,只是現在將寫好的IWProject.exe用同樣觀念運作卻發生問題. 我的瓶頸就在這兒,這也是我想從目前Delphi WebModule跳到IntraWeb來開發cgi無法進展之處. 但不知是我會錯意還是怎樣,看了以上的文件,似乎要所開發的cgi能夠分發到IIS執行,必須要以ISAPI方式才行,不知我有沒有弄錯,能否更清楚說明以你們的時作經驗是如何達成,我現在相當股腦,因為是了一個upload file的功能相當簡單, 只是僅止於ide中run,無法上線,講難聽一點,用IntraWeb連Hello都出不來. 最後在謝謝兩位的指教.
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-12 13:36:05 IP:219.134.xxx.xxx 未訂閱
引言:
引言: 你可能没搞明白WEB SERVER程序的执行模式。 通常的WEB SERVER,都是执行在SERVER端,客户端的浏览器访问SERVER的IP/PORT,通常那个IP/PORT后是IIS这样的WEB SERVER,然后再由IIS(或APACHE)去运行你写的SERVER程序,然后IIS再将程序生成的HTML结果送回给客户端的浏览器。 这种模式,不管SERVER端是PHP/ASP/JSP等写的SERVER端的SCRIPT还是用C /DELPHI写的CGI/ISAPI/DSO等真正的可执行的代码,都是通过上面描述的过程来完成的。 而你在DELPHI里直接RUN的IntraWeb的程序,则没有IIS这样的WEB SERVER,而是程序自己就已经带了WEB SERVER!在这个程序内部,还是先由WEB SERVER接收来自客户端的访问,再把访问请求转向IntraWeb的元件。简单地说,那个程序本身包含了类似IIS的WEB SERVER和类似CGI的程序两部分。 这样的程序是没法让IIS去跑的。它自己就能跑,不需要IIS。 要放到IIS下去跑,你只需要把你的IntraWeb的Project转化为一个ISAPI的Project,然后把编译好的ISAPI(是一个DLL File)放到ISAPI下,设置ISAPI的虚拟路径有执行ISAPI的权限就可以了。这样一来,你访问你的IIS,比如:http://localhost/yourVpath/yourIntraWeb.dll,你的IIS就去把yourIntraWeb.dll RUN起来,让你看到结果了。
謝謝pcplayer99,shinjie兩位大哥; 我現在一直停留在以往利用WebModule開發cgi的觀念中, 以往利用Delphi WebModule開發CGI即使你採用Stand-alone完成的.exe檔, 只要將他的所在位置資料夾利用IIS設定一個虛擬目錄給他,例如:IW 那麼Client只要透過browser在url欄位鍵入http://servername/IW/Project.exe, 就可以得到response. so我一直認為利用IntraWeb應該也是這樣,而且他這麼厲害,以往你開發cgi都要一邊設好IIS的虛擬目錄,開啟瀏覽器,連到你所設的cgi,一邊code一邊由browser測試,看看程式對不對.現在都不必啦...直接在ide終究可見分曉,只是現在將寫好的IWProject.exe用同樣觀念運作卻發生問題. 我的瓶頸就在這兒,這也是我想從目前Delphi WebModule跳到IntraWeb來開發cgi無法進展之處. 但不知是我會錯意還是怎樣,看了以上的文件,似乎要所開發的cgi能夠分發到IIS執行,必須要以ISAPI方式才行,不知我有沒有弄錯,能否更清楚說明以你們的時作經驗是如何達成,我現在相當股腦,因為是了一個upload file的功能相當簡單, 只是僅止於ide中run,無法上線,講難聽一點,用IntraWeb連Hello都出不來. 最後在謝謝兩位的指教.
IntraWeb的工程好象不支持CGI,只支持ISAPI。本质上,IntraWeb自己在服务器端提供了Session,为每个访问者在服务器里保存相关的数据,这个是运行完就消失的CGI做不到的。而ISAPI可以做到。 而你说的不需要IIS的工程,是所谓的Stand-alone的工程,它编译出来的EXE不是CGI,而是一个包含类似IIS的WEB SERVER的可执行程序。你可以认为它就是一个WEB SERVER。 如果你要做CGI,你可以用WebSnap来做,在那里面,也可以用IntraWeb的控件来做页面的。
ATEIN
高階會員


發表:105
回覆:320
積分:125
註冊:2002-07-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-12 14:48:14 IP:203.204.xxx.xxx 未訂閱
請使IIS 設定成可以執行CGI 程式即可解決了 DHM
------
ATEIN
系統時間:2024-06-26 22:07:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!