Delphi 如何配置IIS以映射域根的ISAPI DLL

Delphi 如何配置IIS以映射域根的ISAPI DLL,delphi,iis,isapi,Delphi,Iis,Isapi,我在如下目录下安装了一个ISAPI DLL: c:\inetpub\wwwroot\emsserver\emsserver.dll 这是一个Delphi RAD服务器应用程序 在IIS管理器(Windows 10)中,在Root(计算机名)->Sites->Default Web Site->Emsserver下,我设置了一个处理程序来处理带有该dll的“*.dll”请求。最终结果是,我可以访问应用程序,如: http://localhost/emsserver/emsserver.dll/s

我在如下目录下安装了一个ISAPI DLL:

c:\inetpub\wwwroot\emsserver\emsserver.dll
这是一个Delphi RAD服务器应用程序

在IIS管理器(Windows 10)中,在Root(计算机名)->Sites->Default Web Site->Emsserver下,我设置了一个处理程序来处理带有该dll的“*.dll”请求。最终结果是,我可以访问应用程序,如:

http://localhost/emsserver/emsserver.dll/some-action
那很好。一切正常,产量如预期。但是URL对最终用户不是很友好

问题:

在Windows 10上使用IIS管理器,如何配置它,以便在不使用URL的DLL部分的情况下访问应用程序?所以,就像“
http://localhost/some-action


看起来这应该是一件足够简单的事情,但我不知道怎么做。我尝试在IIS管理器中的根服务器条目以及“默认网站”中设置一个处理程序,但都没有成功。我已经20年没有使用IIS了(几乎完全是Linux和Apache),所以我有点脱离了我通常的邻居。

您可以使用url重写来实现这一点。从下载模块

这是规则的结果。

创建一个重写规则。@LexLi真棒,正是我想要的。这就成功了。对于正则表达式,我使用了(.*),并重写了/emsserver/emsserver.dll/{R:1}。这会将所有请求发送到DLL。所以/some-action最后变成了/emsserver/emsserver.dll/some-action,这就是我需要的。是的,你可以用这种方式修改,我展示的是基于你引用的URL作为例子。使用常规判断是最准确的方法。