如何在IIS中托管由多个项目组成的ASP.NET Web API?
我不熟悉ASP.NETWebAPI和RESTful服务。我最近开始在一个Web API中工作,该API已经由另一个不再在公司工作的开发人员启动,他用于制作此API的方法是为API公开的每个资源创建一个新项目。我的问题是,在IIS中托管此API的正确方法是什么?我可以在IIS管理器中为每个项目创建一个新网站,但这样我将有许多网站。此外,出于测试目的,我尝试在IIS中只创建一个网站,然后在网站中为每个必须部署的服务添加一个应用程序,这同样有效,问题在于每个项目(资源)创建一个虚拟目录,然后访问资源的路由包括虚拟目录名,我不希望这样,因为这样路由将如下所示: BaseURL/虚拟目录/api/resource如何在IIS中托管由多个项目组成的ASP.NET Web API?,asp.net,rest,iis,asp.net-web-api,hosting,Asp.net,Rest,Iis,Asp.net Web Api,Hosting,我不熟悉ASP.NETWebAPI和RESTful服务。我最近开始在一个Web API中工作,该API已经由另一个不再在公司工作的开发人员启动,他用于制作此API的方法是为API公开的每个资源创建一个新项目。我的问题是,在IIS中托管此API的正确方法是什么?我可以在IIS管理器中为每个项目创建一个新网站,但这样我将有许多网站。此外,出于测试目的,我尝试在IIS中只创建一个网站,然后在网站中为每个必须部署的服务添加一个应用程序,这同样有效,问题在于每个项目(资源)创建一个虚拟目录,然后访问资源的
我在谷歌上搜索了如何在IIS中托管ASP.NET Web API的示例,但我找到的所有帖子都显示了如何托管单个服务项目,而不是由多个项目组成的API。因此,如果有人能为我指出正确的方向,我将不胜感激。提前谢谢。根据您的描述,我猜您希望url现在显示虚拟目录 例如:
VirtualDirectory.yourdomain.com/api/resource
至www.yourdomain.com/VirtualDirectory/api/resource
如果这是您的要求,我建议您可以尝试使用url重写扩展来实现您的请求
您可以直接从以下url下载:
然后您可以使用下面的规则将其重写到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>
请粘贴一些屏幕截图。不清楚它在VS解决方案资源管理器和IIS管理器中的外观。在某些情况下,可以使用URLRewite集成多个URL。但我们需要知道你的项目是如何运作的。如果您不想创建多个网站或webapp,那么您必须集成您的项目,使其基于不同的参数返回结果。此外,托管多个网站只是一种正常现象。