我是 ASP.NET Web API和RESTful服务的新手。我最近开始使用一个 Web API,该 API 已经由另一位不再在公司工作的开发人员启动,他用于制作此 API 的方法是为 API 公开的每个资源创建一个新项目。我的问题是,在 IIS 中托管此 API 的正确方法是什么?我可以在 IIS 管理器中为每个项目创建一个新网站,但随后我将拥有许多站点。此外,出于测试目的,我尝试在 IIS 中只创建一个网站,然后在网站内为必须部署的每个服务添加一个应用程序,这也有效,问题是为每个项目(资源(创建一个虚拟目录,然后访问资源的路由包括虚拟目录名称,我不想要这个, 因为这样路由将如下所示:
BaseURL/VirtualDirectory/api/resource
我已经在谷歌上搜索了有关如何在 IIS 中托管 ASP.NET Web API 的示例,但我找到的所有帖子都显示了如何托管单个服务项目,而不是由多个项目组成的 API。所以,如果有人能指出我正确的方向,我将不胜感激。提前谢谢。
根据您的描述,我想您希望网址现在应该显示 vitual 目录。
例如:VirtualDirectoryName.yourdomain.com/api/resource
www.yourdomain.com/VirtualDirectory/api/resource
.
如果这是您的要求,我建议您尝试使用 url 重写扩展来实现您的要求。
您可以从以下网址下载它: https://www.iis.net/downloads/microsoft/url-rewrite
然后你可以使用下面的rewrtite规则到web.config中。
<rule name="Test" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<conditions>
<add input="{HTTP_HOST}" pattern="(.+).sample1.com" />
</conditions>
<action type="Rewrite" url="http://www.sample1.com/{C:1}" />
</rule>