问题标签 [isapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rewrite - ISAPI Url 重写 - 从 http 到 https
我必须 url 重定向一个 HTTP 链接,但它应该重定向到 HTTPS 表单。如何使用 ISAPI 重写来做到这一点?
iis - WIX:如何使用 WIX 卸载 ISAPI 过滤器?
在 WIX 中,我可以使用iis:WebFilter元素安装 ISAPI 过滤器:
当我运行生成的 MSI 时,它会在给定的网站中安装给定的 ISAPI 过滤器。
如何在卸载 MSI 时删除 或取消配置该过滤器?
iis-7 - 在 iis 7.0 中写入客户端 ip 通过防火墙登录
我需要一个在 Windows Server 2008 64 位上运行的 IIS 7.0 解决方案,以便在服务器位于防火墙和代理之后(传递 X-Forwarded-For 标头值)将我的客户端 IP 写入 IIS 日志。
我尝试安装由 Joe Pruitt 编写的 ISAPI 过滤器。它在 Windows Server 2003 32 位 IIS 6.0 上运行良好,但在 Windows Server 2008 64 位 IIS 7.0 上似乎什么也没做。
有人在这个版本的操作系统上尝试过这个 ISAPI 过滤器吗?或有其他解决方案?
链接到 Joe Pruitt(来自 F5)的 ISAPI 过滤器: http: //devcentral.f5.com/weblogs/Joe/archive/2009/08/19/x_forwarded_for_log_filter_for_windows_servers.aspx
最好的祝福,
小伙子
web-services - Apache 托管 Web 服务不处理 TRemotable 类
我从使用 Delphi 2009 创建的 ISAPI DLL 开始,该模块在 Windows XP 上的 IIS 5.1 中运行时按预期执行。使用 Apache 2.2.15 和 mod_isapi 托管时,此相同模块无法正常运行。为了消除 mod_isapi 存在缺陷的可能性,我们创建了相同服务的 Apache 共享对象模块。然而,类似的问题也发生在 Apache 模块中。
通过创建两个共享实现代码的项目,我已经能够创建具有相同实现的 ISAPI DLL 和 Apache 模块。所以它们之间的唯一区别是它们如何连接到它们的主机 Web 服务。这为我提供了三种托管此服务的选项:
- IIS + ISAPI DLL
- 阿帕奇+阿帕奇模块
- Apache + mod_isapi + ISAPI DLL。
这两个项目都实现了一个用于测试的简单 Web SOAP 服务。当您使用 Delphi IDE 创建一个新的 Soap 服务器应用程序时,所有的序列化、反序列化、编组等都由自动生成的代码处理。该界面有一些简单的测试功能。
为了创建 Apache 模块,我必须遵循以下说明:
- http://www.drbob42.com/examines/examin80.htm
- http://www.drbob42.com/Delphi7/Apache2040.htm
- http://leonardorame.blogspot.com/2009/04/apache-22x-modules-with-delphi.html
SOAP 服务实现的接口非常简单。它有一些变化来测试不同的东西。
TSendFileRequest 和 TSendFileResponse 也很简单。
接口的实现充满了虚拟代码,它们只是创建一个结果对象以发送回客户端。实现中不存在重要代码。
当通过 ISAPI 托管在 IIS 中时,服务公开的所有方法都可以完美运行。
在 Apache 中托管时,任何包含 TRemotable 参数的方法都会出错。在这个接口中,SendFile1 和 SendFile5 受到影响,因为它们有一个 TSendFileRequest 作为参数。对 SendFile1 或 SendFile5 的第一次调用按预期工作。成功调用 SendFile1 或 SendFile5 后对任何方法的下一次调用都会导致访问冲突。这种行为在 Apache 共享对象模块和使用 mod_isapi 的 ISAPI DLL 中都可以观察到。
我不确定问题出在哪里,但我看到了三个选项:我的代码、Delphi 代码或 Apache 代码。我只是不知道在哪里。
这个问题非常令人沮丧,因为完全相同的二进制 ISAPI DLL 在 IIS 中有效,但在 Apache 中无效。我将其归结为 ISAPI 主机中的实现差异,但在 Apache 共享对象模块中发生相同的错误意味着正在发生其他事情。
为了完整起见,我决定创建相同 Web 服务的 CGI 版本。在 IIS 下运行时,CGI 版本可以完美运行。在 Apache 中运行时,所有请求都会导致错误:“XML 文档必须具有顶级元素。行:0”
看来 Apache 今天只是讨厌我。
asp.net-mvc - MVC2 + ASP.NET 4.0 + IIS6 + 无扩展 URLS,不再需要通配符映射?
我注意到 asp.net 4.0 现在安装了一个顶级 isapi 插件(在 iis6 中),这样它就可以检查到达服务器的每个请求。现在是否应该允许我们使用无扩展 URLS 运行 MVC 应用程序并让 aspnet isapi 正确处理它们而不需要通配符映射(并避免相关的性能损失)?我还没有找到任何关于此的内容,也没有时间调查。谢谢
iis - 尝试在 IIS 6 上使用 ISAPI Rewrite 将子域映射到另一个
我一直在 IIS 6 和 7 中体验 URL 重写。在 IIS 6 上,我一直在使用 ISAPI Rewrite 3 并尝试将一个子域的 URL 映射到另一个子域,例如
http://subdomain1.domain.com/ *
将映射到:
http://subdomain2.domain.com/ *
我尝试使用以下方法实现此目的:
重写引擎开启
RewriteCond 主机:subdomain1.domain.com RewriteRule (.*) subdomain2.domain.com/$1
但 IIS 日志或 rewrite.log 中似乎没有发生或显示任何内容。我必须遗漏一些东西才能在此处启用日志记录-有什么想法吗?此外,如果有人能提出为什么我的规则似乎不起作用,那将不胜感激。
另一个问题(对不起!)-想知道使用重写模块的 IIS 7,我可以使用重写规则重定向到托管在另一个 IIS 实例(在不同的服务器机器上)上的内容,但不能使用重写操作来只需掩盖 URL - 这可能吗?目前,我刚刚收到 403 - 禁止错误。
非常感谢您的帮助。
iis-7 - 模糊的 IIS7 ISAPI 过滤器问题
我目前正在尝试将旧版 ASP 应用程序从 Windows Server 2000 和 IIS5 迁移到 Windows Server 2008 和 IIS7。此应用程序的身份验证使用 ISAPI 过滤器。除了一个问题外,应用程序和 ISAPI 过滤器都可以在新环境中工作。有问题的应用程序被设置为根应用程序(就像您通过访问http://hostname/application.asp来访问它一样)。如果我通过指定的 URL 访问它,它会询问我的身份验证详细信息,ISAPI 过滤器会通过正确的登录详细信息,然后执行它的操作。然后我在 IIS7 中添加了一个默认文档以指向 application.asp。现在,如果我通过访问http://hostname访问应用程序,ISAPI 过滤器会传递错误的登录详细信息。ISAPI 过滤器实现了这个方法:
其中,pAuthent 对象在调用 ISAPI 过滤器时由 IIS 传入,并且具有 pszUser 属性,该属性通常保存在身份验证对话框中输入的值。在我的情况下(使用默认文档条目访问网站时),pszUser 属性保存的是运行应用程序池的 Windows 帐户的值。为了清楚起见,如果我在 application.asp 部分中键入,ISAPI 过滤器将传递正确的值。
我对这个问题感到很困惑,并且不知道如何解决它。为了使事情顺利进行,我无法真正重建/修改 ISAPI 过滤器,而且在 IIS 管理方面我是初学者。
我还发现,如果 IIS 没有安装默认文档功能,则身份验证有效。如果没有此功能,默认文档(自然)不起作用,但身份验证可以。只有在我添加了默认文档功能之后,身份验证才会中断。
谢谢你的帮助!
iis-7 - 在 IIS7 中以编程方式安装 ISAPI 扩展
我想以编程方式在 Windows7 上的 IIS7 中安装 ISAPI 扩展
(控制面板->程序和功能->打开或关闭Windows功能->IIS->WWW->应用程序开发功能->ISAPI扩展)。
基本上我想通过以下 DISM 命令实现我可以做的事情
dism /online /Enable-Feature /FeatureName:IIS-ISAPIExtensions
我尝试使用 Microsoft.Web.Administration,以下是代码
它确实更新了 applicationHost.config。当我比较使用我的代码更新的 applicationHost.config 和使用 DISM 更新的相同时,它们几乎相同。唯一的区别是,上面的代码没有在模块部分设置“lockItem=true”,因为这样写会出错。但我认为应该没关系。
但是上面的代码没有安装该功能,而 DISM 可以。有什么区别 ?
我做了另一个测试。
1) 使用 DISM 启用 ISAPI 扩展 2) 保存 applicationHost.config 的副本 3) 使用 DISM 禁用 ISAPI 扩展 4) 使用保存的副本早期覆盖 allicationHost.config
它不安装 ISAPI 扩展功能。所以 DISM 不仅更新了 applicationHost.config,还做了更多的事情。那么它有什么作用,我如何以编程方式实现相同的目标?
web-services - 如何配置 IIS 7 以允许从 ISAPI Web 服务器内进行远程数据库连接
我有一个使用 Delphi 2010 构建的本机 Web 服务应用程序 (ISAPI)。此时,它只公开了两个方法。第一个是 EchoString,旨在向我提供 Web 服务正常运行的反馈,它在我从 Delphi Web 服务客户端发送给它的字符串中添加了几个字符。这总是很好。
第二个公开的方法是我真正感兴趣的方法。我向该方法传递了一个包含 ClientDataset 的 XML 内容的字符串。从服务器端,我的代码获取这个 XML 并将其插入到 ClientDataset 中,然后将这些数据发布到服务器端数据库。
我正在使用 IBExpress 组件(IBDatabase、IBTransaction、IBQuery 等)连接到服务器端的 InterBase 数据库。
问题是,一旦我尝试将 IBDatabase 组件连接到其数据库,Web 方法就会失败。我想我已经排除了这个错误的所有其他来源。我可以使用从客户端发送的相当大的 ClientDataSet 的 XML 创建和填充 ClientDataset,其中包括没有问题的嵌套数据集(我使用的是 MidasLib 单元,因此 ClientDataSet 不尝试加载 DLL)。我可以创建和配置,而不是连接到 IBDatabase 及其各种组件。再次,没有问题。一旦我在 Web 服务中将 IBDatabase 组件的 Connected 属性设置为 True,它就会失败。
我在 Windows 7 64 位 Ultimate 下运行 IIS 7.5(在我的开发机器上)。我已经尝试向每个人(特别是 IIS_IUSRS)授予对特定 ISAPI DLL 以及 Web 服务所在的整个目录的完全控制权限。这并没有解决问题。
我怀疑这完全是 IIS 7 的权限问题。我可以做些什么来允许我的 ISAPI Web 服务连接到 InterBase 客户端 API,以便我可以使用 Web 服务写入我的数据库服务器?' ' ' ' ' ' ' ' ' ' '
Post Script: 从 Web 服务连接到 Interbase 似乎没有问题。我仍在追查确切的原因,但我现在已经能够从 Web 服务中成功连接到 Interbase。一旦我知道原因,我会更新这篇文章,但这个问题不再有效。' ' ' ' '
我将 Bob 的答案标记为正确答案。连接字符串错误。实际上(这很尴尬,但我宁愿尴尬也不愿误导),
我将连接信息存储在资源字符串中。我在with子句中进行了分配。DatabaseName 属性的资源字符串的名称是 DatabaseName。with子句导致将 DatabaseName 属性分配给自身,而不是资源字符串中的值。我通过在 DatabaseName 资源字符串前面加上单元名称(即 DatabaseName := IBModUnit.DatabaseName;)来解决这个问题。
delphi - 我可以使用 WebBroker 和 Delphi 创建一个干净的 URL 吗?
我可以为网上经纪服务网页/应用程序创建一个干净的 URL 吗?
典型的网上经纪商 URL 通常如下所示:
hxxp://www.mywebsite.com/myapp.dll?name=fred
或者
hxxp://www.mywebsite.com/myapp.dll/names/fred
我更喜欢的是:
hxxp://www.mywebsite.com/names/fred
知道如何使用 Delphi/WebBroker 实现这一目标吗?(ISAPI/阿帕奇)