IntraWeb 如何在IIS中執行 |
答題得分者是:pcplayer99
|
syene
一般會員 發表:17 回覆:12 積分:5 註冊:2003-01-04 發送簡訊給我 |
在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 發送簡訊給我 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
你可能没搞明白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 發送簡訊給我 |
引言: 你可能没搞明白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 發送簡訊給我 |
引言:IntraWeb的工程好象不支持CGI,只支持ISAPI。本质上,IntraWeb自己在服务器端提供了Session,为每个访问者在服务器里保存相关的数据,这个是运行完就消失的CGI做不到的。而ISAPI可以做到。 而你说的不需要IIS的工程,是所谓的Stand-alone的工程,它编译出来的EXE不是CGI,而是一个包含类似IIS的WEB SERVER的可执行程序。你可以认为它就是一个WEB SERVER。 如果你要做CGI,你可以用WebSnap来做,在那里面,也可以用IntraWeb的控件来做页面的。引言: 你可能没搞明白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都出不來. 最後在謝謝兩位的指教. |
ATEIN
高階會員 發表:105 回覆:320 積分:125 註冊:2002-07-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |