WebServer Application遇到的问题(100分)

  • 主题发起人 主题发起人 xjing
  • 开始时间 开始时间
X

xjing

Unregistered / Unconfirmed
GUEST, unregistred user!
一个最简单的WebServer Application,
主要代码只有:
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
Response.Content := 'Hello,world!';
end;
网页中的调用为
“FORM ACTION="add.dll" METHOD=POST”
为什么运行时总是出错,显示“该页无法显示”?(我装的是win2000+iis+delphi5+acitveperl)



 
是你的程序有错,不是网页有错。请把IE高级选项中的“禁止脚本调试”不选。
这里可以看到是什么错误。
 
设置WebActionItem1的default的属性为true;
或在网页调用时action="add.dll/+webactionItem1的pathinfo"
 
“禁止脚本调试”我没有选上的。
呵呵,不好意思,写错了,应该是:
“FORM ACTION="add.dll/index" METHOD=POST”
这个程序在win98下调试正常。我把它拷到win2000下就不能运行,显示
HTTP 500 - 内部服务器错误
Internet Explorer
不知是怎么回事?给我感觉是设置的问题?
有哪位朋友是在win2000下调试web WebServer Application,能告诉我详细的设置吗?
 
[:)]iis 的可执行应用程序(记得有个类似的选项)的选项是否已打开?
 
你是说iis中“执行许可”选项:我选的是“脚本和可执行程序”
 
我就是在win2000下使用,没什么要设置的啊。
 
to: wagxu
你在装activeperl时,win2000的iis中要加入映射文件.pl和.cgi吗?不过可能这些是
运行.pl和.cgi需要的,那么运行.dll是不是要加入.dll的映射文件呢?
能不能详细说说你的设置,是装好win2000后,新建站点,设置iis中为“脚本和可执行程序”
就可以了?
我的c:是FAT,d:是FAT32的
 
大家快帮帮我,我程序快做完了,但一直是在win98下调试的,没有问题。
我想win2000应该也没事,但现在几天了,我现在一个简单的web application
在win2000下都不能调试成功,我快闷死了!
现在分也没了,帮帮我吧。
 
我想大概是win2k的安全权限机制在作怪。
你的dll程序是直接copy的还是用frontpage import功能引入的呢?
如果你是直接copy的话,该dll是用你的身份权限建立的,
而ie在访问时使用internet guest身份,
这样服务器不能运行你的dll程序从而导致出错!
win9x是没有安全机制的,所以可以运行。
 
我把整个程序什么.pas 、.dpr文件直接copy的,然后再重新编译生成dll文件,这样也不行吗?
而且我重新在win2000下建了一个简单页面,就跟上面一样的,重新命名编译也不能通过啊!
 
我也遇着这样的问题,现在正头大呢,解决了请告诉我一声,谢谢
 
TO:xjing
我没有安装activeperl。我就是把编译好的dll拷贝到web目录下。
 
有个工具叫做IntraBob,是用来调试ISAPI程序的,你可以去下载一个试试。
网址是:www.drbob42.com
 
我的意思是你在把dll文件引入web server时,如果是直接copy到cgi目录,
那么浏览器将无法(没有足够权限)运行cgi程序。ok!
 
to wagxu:哪个web目录?
to milesg:那应该怎么做?不copy的话,我怎么把程序从98的机子上拿到win2000下来?frontpage 有import功能吗?
 
在win98或win2k上用frontpage打开win2k的web server,
然后用frontpage文件菜单中的import/导入功能把dll导入到web server的cgi-bin目录中。
如果web server没有cgi-bin则可用frontpage在web server的目录树下创建一个,
不过要记得在iis管理器中将该目录的权限设置为可执行。这样frontpage会帮你正确设置
dll的权限。
 
我现在发现是取数据库时出错,webmodule1中的query1和query2都有红色的框,是没有连接成功吗?
从index.htm提交到project2.dll
这样可以:
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
name:=request.contentfields.values['t1'];
response.content:='ok'+name;end;
end;
这样却不行:
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
name,zsql:string;
begin
name:=request.contentfields.values['t1'];
response.content:='ok'+name;
query1.close;
query1.SQL.clear;
zsql:='selcet * from user';
query1.sql.add(zsql);
query1.Prepare;
query1.Open;
end;
是怎么回事?
数据库我是在win2000下重建的
 
接受答案了.
 
后退
顶部