如何让 Windows 7 上的 IIS 运行我的 soap webservice 可执行文件而不是下载它

如何让 Windows 7 上的 IIS 运行我的 soap webservice 可执行文件而不是下载它

我已经使用 delphi 构建了一个非常简单的 Soap Web Server 服务,并且在运行 Windows 7 Professional 的本地计算机上安装了 IIS-7。

我将 Soap 可执行文件放在 inetpub/wwwroot/ 目录中。当我访问地址“http://localhost/SoapAttempt.exe“我的浏览器尝试下载该文件而不是运行它。

我想我需要在 IIS 中进行一些设置。我需要做什么才能让它运行而不是下载?

编辑:

我正在关注这个教程http://www.devarticles.com/c/a/Delphi-Kylix/Building-a-Web-Service-from-Scratch-with-Delphi/第三页指示编译可执行文件并将其放置在目录中。然后它指示从 Web 浏览器打开它,这样做之后,教程显示它显示一个页面,其中包含有关可用于构建客户端的 soap 服务器的信息,但我得到的只是下载 exe。所以我错过了某个步骤,因为设置不正确。

注意:教程说将可执行文件放在 wwwroot/cgi-bin 目录中,但我尝试了上述目录和此目录,结果相同。

答案1

CGI-exe 的处理程序映射已被禁用。

  • 进入 IISManager(在开始栏中搜索 inetmgr)
  • 在左侧框中选择最高级别
  • 双击处理程序映射图标
  • 右键单击禁用部分中名为 CGI-exe 的项目
  • 单击“编辑功能权限”
  • 确保选中“执行”
  • 按“确定”退出该屏幕,Presto 问题解决

几乎...

我现在遇到了一个不同的问题,但我会把它放在这个答案的评论中

答案2

IIS 将托管 Web 服务。如果您的 Delphi 应用程序是一个独立的 Web 服务器,则无需将其放置在 IIS 中的虚拟目录中。相反,需要从服务器运行可执行文件,然后尝试通过浏览器导航到它。

如果您编写了 IIS 扩展/附加组件/插件,则需要研究它们是如何部署的。

更新

从您提供的链接:

将所有项目文件保存在一个目录中,包括接口和实现单元。然后在 Delphi IDE 中转到“项目”,然后选择“选项”,并将输出目录设置为“X:inetpubwwwrootcgi-bin”。“X”代表 Web 服务器根目录所在的驱动器名称。对于运行 IIS 的用户来说,cgi-bin 目录不会自动包含在 webroot 中,因此请创建它并赋予其执行权限。我们将输出目录设置为 cgi-bin 目录,因为每次更改应用程序时,我们不必将 exe 复制到 cgi-bin 目录。重新编译时,exe 将自动放置在该目录中。与大多数其他 Web 服务不同,我们的 Web 服务不需要 Internet 连接,但需要 Web 服务器。

重点是我——您是否在 IIS 下创建了该虚拟目录?您是否为该目录选择了“执行”权限?(创建虚拟目录后,右键单击选择属性,然后在下拉列表中找到“执行权限”字段)

相关内容