dotnet调用delphi写的cgi

转载 2006年05月22日 11:39:00
作  者:   ilovedotnetthandelph ()
等  级:  
信 誉 值:   100
所属社区:   Delphi 网络通信/分布式开发
问题点数:   0
回复次数:   1
发表时间:   2006-5-11 12:31:14

最近写了一个关于dotnet调用delphi写的cgi的程序,参考了网上很多网友发的帖子,这里我将大家的内容加上我自己的心得写一篇,让后来像我这样的小虾少走点弯路。

一、用Delphi开发Web Service程序
打开Delphi7.0的开发环境,依次选择New | Other | WebServices | SOAP Server Application,然后选择CGI Stand-alone executable,系统将自动包含进开发Web Service所需要的类。在弹出的confirm窗口中点击确定,并在Add new services窗口中输入services name:test,系统自动生成工程,将新建工程保存为testservices。
编辑文件testImpl、testIntf生成调用接口,编辑后的文件如下,其中红色字体为自己添加的代码,蓝色字体是申明的接口。
testIntf:
{ Invokable interface Itest }

unit testIntf;

interface

uses InvokeRegistry, Types, XSBuiltIns;

type

  { Invokable interfaces must derive from IInvokable }
  Itest = interface(IInvokable)
  ['{FE47D43F-59DF-4AF9-ACD4-BA3882C01B31}']

    { Methods of Invokable interface must not use the default }
    { calling convention; stdcall is recommended }
    function gettext():widestring;stdcall;//申明在自定义接口中所定义的方法
  end;

implementation


initialization
  { Invokable interfaces must be registered }
  InvRegistry.RegisterInterface(TypeInfo(Itest));

end.

testImpl:
{ Invokable implementation File for Ttest which implements Itest }

unit testImpl;

interface

uses InvokeRegistry, Types, XSBuiltIns, testIntf;

type

  { Ttest }
  Ttest = class(TInvokableClass, Itest)
  public
   function gettext():widestring;stdcall;//申明在自定义接口中所定义的方法
  end;

implementation
function Ttest.gettext: widestring; stdcall;//实现自定义方法
begin
Result:='Success';
end;

initialization
  { Invokable classes must be registered }
  InvRegistry.RegisterInvokableClass(Ttest);

end.

这样就生成一个返回字符串类型的接口方法。
二、把服务程序放在IIS Web服务器上提供给各种客户程序调用。
在IIS的默认站点里面新建一个虚拟目录delphi-cgi,并将该虚拟目录的执行权限设置为“脚本和可执行文件”以使该目录具有执行ISAPI扩展的权限,将虚拟目录指向该工程的文件夹。
三、在dotnet中调用该webservies。
在dotnet中添加web引用,在添加web引用窗口的URL栏中填入delphi的webservies的URL地址:http://localhost/delphi-cgi/testservices.exe/wsdl/Itest(如图1),点击转到,系统会自动发现接口(如图2),在web引用名栏中输入testservices,点击添加引用,系统将添加该引用(如图3)。
在WebForm1.aspx上添加button、textbox,在WebForm1.aspx.cs中添加代码:
using WebService1. testservices;
在事件Button1_Click中添加代码:
WebService1.testservices.Itestservice tt=new WebService1.testservices.Itestservice();
TextBox1.Text=tt.gettext();
运行程序在文本框中会显示字符“success”。

图看不到。

相关文章推荐

用Delphi编写CGI程序返回图象

珠海西门子表计公司  汪永荣  ---- Delphi 4.0对Internet编程提供了强大的支持,Delphi 4.0编写CGI非常容易, Delphi 4.0本身提供了例程。但是笔者在实践中...
  • bq_cui
  • bq_cui
  • 2013年04月02日 10:54
  • 873

Rave Report For Delphi 8.0 dotNET

  • 2006年02月23日 09:05
  • 10.65MB
  • 下载

Java调用DotNet WebService为什么那么难? .

前几日研究Java调用DotNet WebService,找了好多资料竟然没有好用的.将2日的艰辛拿出来分享,希望对朋友们有帮助。   .Net开发环境: VS DotNet 2005 Java...
  • EverWHL
  • EverWHL
  • 2013年01月24日 17:13
  • 580

android如何调用dotnet编写的webservice

android如何调用dotnet编写的webservice    最近这几天在研究android调用webservice,因为以前做J2ME的时候用过JSR172规范来调过webservice感觉贼...

AXIS的"dotnet_soapenc_bugfix"属性会自动重设的bug,将导致c++客户端调用soap接口失败

项目里开发的JIRA,使用了AXIS对外提供了soap接口。另外我们使用了gsoap开发了一个com组件,并通过它实现Excel上传问题单到JIRA服务器上。今天碰到一台服务器的这个功能居然失效了,经...

DOTNET下的三种调用webservice方式之Javascript调用方式

上一篇我们讲了ASP.NET网络应用程序调用webservice方式 这篇我们讲采用Javascript的方式调用 回顾上一篇内容  DOTNET下的三种调用webservice方式之ASP.NET调...
  • CYXLZZS
  • CYXLZZS
  • 2011年06月25日 16:17
  • 2570

DOTNET下的三种调用webservice方式之WinForm调用方式

上两篇分别采用了ASP.NET和javascript两种方式调用webservice 回顾上两篇内容 DOTNET下的三种调用webservice方式之ASP.NET调用方式 DOTNET下的三种调用...
  • CYXLZZS
  • CYXLZZS
  • 2011年06月25日 16:28
  • 3975

DOTNET下的三种调用webservice方式之ASP.NET调用方式

首先当然是开发一个webservice,我们来个简单的计算器的实现,代码如下using System;using System.Collections;using System.ComponentMo...
  • CYXLZZS
  • CYXLZZS
  • 2011年06月25日 16:05
  • 13718

使用cgic來寫cgi的範例檔

  • 2010年03月27日 16:07
  • 273KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dotnet调用delphi写的cgi
举报原因:
原因补充:

(最多只允许输入30个字)