ASP.NET MVC 4项目放在另一个ASP.NET MVC 4项目的文件夹中

时间:2013-08-27 01:40:24

标签: web-services asp.net-mvc-4 routing global-asax subdirectory

我有一个简单的主要Web项目。我还有一个与主项目相关的第二个项目,但它本身就是一个简单的Web服务。我想将Web服务项目放在我的主项目中常规文件夹内的版本文件夹中。例如,我的主项目中名为“WebService”的文件夹,其中包含版本1的子文件夹“v1”将导致以下URL:

Url访问主控制器中的主项目索引操作:http://myMainProjectUrl.com/Home/Index
Url访问家庭控制器中的Web服务v1的索引操作:http://myMainProjectUrl.com/WebService/v1/Home/Index

在设置这样的项目之后,我在尝试访问Web服务时获得了404。我可以在主项目中的Global.asax或IIS(或任何地方)中执行此URL映射方法吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

您应该可以通过修改位于App_Start / WebApiConfig.cs中的默认路由来实现此目的

e.g。

public static void Register(HttpConfiguration config)
{
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { Action = "Get", id = RouteParameter.Optional }
    );
}

更改“api / {controller} / {action} / {id} 到“/ WebService / {controller} / {action} / {id}”

答案 1 :(得分:0)

在这里和那里尝试之后,答案是在IIS中。

在IIS中,您可以添加"应用程序"在你的网站内。

  1. 右键点击您网站中的第二个项目"是(在我的情况下,文件夹是" WebService")并选择"添加应用程序..."
  2. 在别名中键入所需URL的结束路径(在我的情况下,我的别名是" v1")。
  3. 指出"物理路径"到第二个项目所在的文件夹(在我的情况下,我的Web服务项目位于" WebService / v1 / webservice_v1")。
  4. 单击“确定”,即可完成。