Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IIS中托管由多个项目组成的ASP.NET Web API?_Asp.net_Rest_Iis_Asp.net Web Api_Hosting - Fatal编程技术网

如何在IIS中托管由多个项目组成的ASP.NET Web API?

如何在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中只创建一个网站,然后在网站中为每个必须部署的服务添加一个应用程序,这同样有效,问题在于每个项目(资源)创建一个虚拟目录,然后访问资源的

我不熟悉ASP.NETWebAPI和RESTful服务。我最近开始在一个Web API中工作,该API已经由另一个不再在公司工作的开发人员启动,他用于制作此API的方法是为API公开的每个资源创建一个新项目。我的问题是,在IIS中托管此API的正确方法是什么?我可以在IIS管理器中为每个项目创建一个新网站,但这样我将有许多网站。此外,出于测试目的,我尝试在IIS中只创建一个网站,然后在网站中为每个必须部署的服务添加一个应用程序,这同样有效,问题在于每个项目(资源)创建一个虚拟目录,然后访问资源的路由包括虚拟目录名,我不希望这样,因为这样路由将如下所示:

BaseURL/虚拟目录/api/resource


我在谷歌上搜索了如何在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,那么您必须集成您的项目,使其基于不同的参数返回结果。此外,托管多个网站只是一种正常现象。