【问题标题】:How to Host Web API and MVC application on Same Address如何在同一地址上托管 Web API 和 MVC 应用程序
【发布时间】:2018-12-28 15:04:14
【问题描述】:

我有一个 .NET 解决方案,它有两个项目,一个用于 MVC 应用程序,另一个用于 API。

我需要有关 IIS 托管方面的帮助,我可以在同一服务器上部署两个应用程序,而无需更改地址或端口。

我想以这种方式托管这两个应用程序,这样我就不需要在 MVC 应用程序中更改 API ajax url。我的意思是

在 MVC 中,为了调用 Web API,我使用了 ajax 调用 (url:"/api/LoginAPI/CheckUser") 注意:我在应用程序上有 50 多个 ajax 调用。

我想通过简单地添加“/API/”作为后缀来进行 ajax 调用,它应该能够调用我的 API 并按预期结果响应,而不会出现任何问题,例如(找不到 API 或路径不正确)

我有点确定这是可能的,但需要更多专家建议以确保我的想法是正确的。

请提供您的宝贵意见。

【问题讨论】:

    标签: .net api iis model-view-controller hosting


    【解决方案1】:

    正如你所说,你有两个项目,一个是 API,第二个是 MVC。 API 项目也支持所有 .net MVC 功能,就像它提供了 MVC 的所有默认引用(库引用)。

    第一种方式

    您只需在 API 项目中复制以下元素。

    所有型号, 控制器 所有视图 所有 CSS 文件 所有 JS 文件 所有 mvc 项目的引用,并将其交给 API 项目。

    也不要忘记包含在您的项目中。这将适用于制作这个单一项目。

    第二条路

    只需构建您的 MVC 项目并参考 API Project 即可。 和移动 意见 CSS JS 在您的 API 项目中。

    第三种方式。

    您可以创建虚拟目录以在单个域上拥有两个应用程序。

    【讨论】:

    • 完美@Nikunj 谢谢:)
    • 我已经按照你的第三步得到了这个错误:vendors.min.js:4 POST localhost:8182/api/LoginAPI/CheckUser500 (Internal Server Error)
    • {Message:“发生错误。”,...} ExceptionMessage:“对象引用未设置为对象的实例。” ExceptionType:“System.NullReferenceException”消息:“发生错误。” StackTrace:“在 CDS_V1_Api.Controllers.LoginAPIController.CheckUser(UserInfo obj) ↵ 在 lambda_method(Closure , Object , Object[] ) ↵ 在 System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.c__DisplayClass10.b__9(对象实例,Object[] methodParameters)
    猜你喜欢
    • 2021-01-23
    • 2016-10-05
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多