同一解决方案中的MVC和Web API项目

Del*_*Boy 6 c# asp.net-mvc asp.net-web-api

我刚刚创建了一个包含Web API 2项目(向移动设备提供JSON数据)和类库(包括我的数据访问服务)的解决方案.

Web API项目使用Ninject进行DI,一切正常.

现在我需要为几个网页添加一个单独的MVC项目.api应该可以访问www.example.com/api/controller,而网站应该通过访问www.example.com/controller.

问题是这两者中的每一个都有一个不同的"注册"方法,看似不兼容的路由集合.如果我将MVC项目设置为启动项目,则不会注册api的路由,反之亦然.如果我设置"多个启动项目",它们会在不同的端口运行,这不是我的一杯茶.

如何将MVC项目设置为启动项目,同时为两者注册所有路由?

还有一件事.由于Web API项目是较早创建的,因此Ninject配置已在其中编写.当然,在新的MVC项目中需要来自类库项目的一些服务.我是否必须将N​​inject配置移动到MVC项目,或者它们只是工作,因为它们是在Web API项目启动时运行的?

adr*_*dar 13

这2个项目彼此独立,就像2个不同的应用程序一样,即使它们在同一个解决方案中也是如此.

为了成功实现您的目标,您必须:

1)将MVC项目部署到www.example.com(主虚拟应用程序).

2)将WebAPI项目部署到www.example.com/api(api文件夹是虚拟应用程序).不要忘记apiWebAPI路由中删除(否则您必须使用此路由www.example.com/api/api/controller).

这样做,您可以在同一个URL中独立访问这两个项目.

对于NInject部分,您可以再次注册MVC项目中的服务.另一个解决方案(我建议)是在两个项目中引用此类之后创建一个类库项目并在那里注册服务.