将Delphi ISAPI DLL集成到ASP.NET Web应用程序中

时间:2009-08-12 12:27:29

标签: c# asp.net delphi dll isapi

我们拥有Delphi中的所有代码,并且很难直接在.NET中创建一个新的 ASMX / SVC文件,因为它使用加密和奇怪的东西:)因为它需要大约2周时间转换并测试...

因此我们同意保留Delphi代码并找到ASP.NET应用程序和Delphi代码之间的通信方式,因此我们生成了一个添加到IIS的Delphi WebService是一个ISAPI DLL。

我的第一个问题是:

我是否真的需要设置IIS并单独安装此WebService,还是可以使用任何特殊技巧将其用作项目的一部分(就像ASMX文件一样)?

和我的第二个问题,我很难提供有关如何将pascal转换为.NET的同行信息,因此我们可以使用pascal代码输出ASMX,例如..我找不到任何可以做到这一点。

我们有Delphi Studio 2009,它在几个文档中提到我们可以做.NET(如何?)并且有Delphi for .NET(我们在这里谈论Delphi Prism吗?)。

谢谢你们!


将解决我的2个问题的新问题

如何从Delphi代码生成ASMX(.NET Web服务)或SVC(.NET WCF服务)? 我正在阅读Delphi Prism,但我仍然无法弄明白。

1 个答案:

答案 0 :(得分:1)

如果您有ISAPI DLL,则它将与ASMX或其他ASPNET工件分开安装。 ISAPI DLL安装在IIS管理器中。它可以是过滤器或扩展,并且专门为每个安装。

如果它是扩展名,则可能是响应http请求的内容。如果这是真的,那么它将处理一组以特定后缀结尾的URL。例如,可能会以“.foo”结尾的所有请求注册ISAPI扩展,因此如果您勾选http://server/pagename.foo,请求将由扩展程序处理。 IIS7将这些东西称为“处理程序”。

如果这个Delphi是一个过滤器,那么它可能是一个将自己注入每个 http请求的东西,无论最终哪个应用程序(ASPNET,其他东西)处理请求,无论请求的扩展名如何。过滤器可以执行授权检查,身份验证,URL重写等等。您与过滤器交互的方式是通过服务器变量,或者......在某些情况下,例如重写过滤器,过滤器的操作对“页面”逻辑完全透明。你可以忽略过滤器存在的事实。

使用授权过滤器,有时会在请求中设置授权烹饪,您可以通过服务器变量获取。