C# 当应用程序作为默认网站下的Web应用程序发布到IIS时,URI到Web API操作不起作用

C# 当应用程序作为默认网站下的Web应用程序发布到IIS时,URI到Web API操作不起作用,c#,asp.net-mvc,asp.net-mvc-5,routing,asp.net-web-api2,C#,Asp.net Mvc,Asp.net Mvc 5,Routing,Asp.net Web Api2,我已经将WebAPI2添加到现有的MVC5 Web应用程序中。我使用这个WebAPI的方法将JSON数据返回到MVC视图 这是视图中ajax调用的一个示例: $.getJSON('@Url.RouteUrl("DefaultApi" , new { httproute = true, controller = "Data", action = "GetMyData" })' , function (data) { ... do sth with returned

我已经将WebAPI2添加到现有的MVC5 Web应用程序中。我使用这个WebAPI的方法将JSON数据返回到MVC视图

这是视图中ajax调用的一个示例:

$.getJSON('@Url.RouteUrl("DefaultApi"
    , new { httproute = true, controller = "Data", action = "GetMyData" })'
    , function (data) {
        ... do sth with returned json data here ...
    });
这是在客户端上生成的代码:

$.getJSON("/api/Data/GetMyData", function (data) { ...
这就是WebApiConfig.cs文件的外观:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
当我从VisualStudio调试时,一切都很好。但是,当我将应用程序作为“默认网站”下的应用程序部署到IIS时,指向Web API操作方法的所有链接都会断开

换句话说,
$.getJSON(“/api/Data/GetMyData”),当我从Visual Studio启动调试会话时,函数(Data){…
工作正常,但当应用部署到IIS时返回404错误

我打字的时候

http://localhost/myAppVirtualPath/api/data/GetMyData
直接在浏览器的地址行中,我得到了预期的结果


应用程序的虚拟路径似乎需要添加到URI中的“/api”之前未能做到这一点。我这里是否缺少一些明显的东西?我想是的,但可能是什么?

是否在IIS中将
myAppVirtualPath
配置为应用程序?@CyrilDurand是的,我通过右键单击默认网站添加了它,然后选择了“添加应用程序”…是否使用“Url.Action”(“GetMyData”,“Data”)对其进行了测试“相同的结果?是否在IIS中将myAppVirtualPath配置为应用程序?@CyrilDurand是的,我通过右键单击默认网站添加了它,然后选择了“添加应用程序…”是否使用“Url.Action”(“GetMyData”,“Data”)”对其进行了测试,结果相同?