将web-api Controller添加到现有的asp,net mvc5

时间:2015-01-20 05:17:10

标签: asp.net asp.net-mvc asp.net-web-api

我的解决方案有2个mvc项目和2个web-api项目。

** Mvc Projcet 1 - localhost:1230 /

** Mvc Project 2 - localhost:1231 / center /

** Api项目1 - localhost:1232 / api /

** Api Project 2 - localhost:1232 / api / file /

我想将web-api控制器发送到" Mvc Project 2"。 所以我安装了包' Microsoft.AspNet.WebApi'。 并完成了这样的配置。

WebApiConfig.cs

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

Global.aspx

protected void Application_Start()
    {
        DrDB.Common.AppInfo.AppType = "Web";
        DrDB.Common.AppInfo.EntryAssembly = typeof(MvcApplication).Assembly;

        System.Web.Mvc.AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        GlobalConfiguration.Configure(WebApiConfig.Register);
    }

AcoountServiceController

namespace center.Controllers
{
    [Authorize]
    [RoutePrefix("api/Account")]
    public class AccountServiceController : ApiController{
        [Route("UserInfo")]
        public UserInfoViewModel GetUserInfo()
        {
              ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);

              return "test";
        }
    }
}

然后我访问了localhost:1231 / center / api / Account / UserInfo /',我收到404错误。

无法加载资源:服务器响应状态为404(未找到)

所以,我尝试制作helpPage,Installed' Microsoft.AspNet.WebApi.Helppage'。 并且helpPage不仅显示了' AccountServiceController'还有 Api Project 1 的控制器。

我该如何解决? 我想使用' localhost:1231 / center / api / Account / UserInfo /'。

0 个答案:

没有答案