一个解决方案中的两个项目

时间:2014-09-26 09:17:45

标签: angularjs asp.net-web-api visual-studio-2013

我的Visual Studio解决方案中有两个项目。一个是带有AngularJS和html前端的空WEB应用程序。其他是带有嵌入式数据库,控制器和东西的WEB API项目。问题是当我从第一个解决方案调用web api控制器时,我找不到404。我怀疑托管有问题,但我不知道究竟是什么类型。我试图在IIS中托管后端项目,但没有结果。也许我错过了一些东西。

2 个答案:

答案 0 :(得分:2)

花了很多时间研究这个,我意识到localhost中的不同端口存在问题,可以在那里找到解决方案:http://jaliyaudagedara.blogspot.com/2014/08/angularjs-consuming-aspnet-web-api.html

基本上我应该更改属性中的项目URL以匹配前端项目的localhost端口,并添加'api'后缀以避免两个项目使用相同的虚拟目录。

答案 1 :(得分:0)

@satish, Global.asax中:

namespace WebAPI_Training
{
public class WebApiApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        GlobalConfiguration.Configure(WebApiConfig.Register);            
    }
}
}

WebApiConfig.cs:

 namespace WebAPI_Training
 {
 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 }
        );

        var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
        jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    }
}
}