我正在尝试对从WebAPI
服务调用到.asmx
Web 服务调用的URL进行简单的 IIS 重写。web.config
这是在 IIS 中设置后添加到我的 WebAPI 的配置:
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite Proxy To Client" patternSyntax="ExactMatch">
<match url="api/MyWebAPIProxy" />
<action type="Rewrite" url="http://localhost/MyWebService.asmx/MyServiceMethod" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
我从这里尝试了所有方法(URL 重写 - web.config 错误),包括重新安装 IIS 重写模块,但没有帮助。调用包含此配置的 WebAPI 服务时出现以下错误:
HTTP 错误 500.52 - URL 重写模块错误。无法读取配置部分“system.webServer/rewrite/allowedServerVariables”,因为它缺少部分声明
现在我可以使用 Postman 或 Fiddler 独立调用服务,并且服务运行良好。实际上,在调用具有 IIS 重写规则的 WebAPI 服务之前,我必须删除重写的配置,然后再调用。关键是,这些服务都有效。问题在于这种重写配置。我在这里做错了什么导致它无法正常工作?