0

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

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

像这样设置项目后,我在尝试访问 Web 服务时收到 404。我可以在主项目或 IIS(或任何地方)的 Global.asax 中做什么来使这种 URL 映射方法起作用?提前致谢。

4

2 回答 2

0

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

例如

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}”

于 2013-08-27T02:16:30.567 回答
0

在到处尝试之后,答案就在 IIS 中。

在 IIS 中,您可以在站点内添加“应用程序”。

  1. 右键单击站点中“第二个项目”所在的文件夹(在我的情况下,该文件夹是“WebService”),然后选择“添加应用程序...”。
  2. 在别名中键入您想要的 URL 的结束路径(在我的情况下,我的别名是“v1”)。
  3. 将“物理路径”指向第二个项目所在的文件夹(在我的情况下,我的 Web 服务项目位于“WebService/v1/webservice_v1”中)。
  4. 单击确定,您就完成了。
于 2013-08-27T20:04:28.837 回答