【问题标题】:MVC Web App using Web API do not work after deploying on IIS在 IIS 上部署后,使用 Web API 的 MVC Web App 不起作用
【发布时间】:2016-06-22 16:13:50
【问题描述】:

我使用 asp.net MVC 架构创建了 Web 应用程序。 我使用 Web API 从数据库中获取数据。 Web 应用程序和 Web API 都在同一个项目中。我没有在 IIS 上单独发布 Web API。

当我通过 Visual Studio 调试或运行应用程序时,它可以正常工作。我使用下面的代码从 Web API URL 获取数据

 TODOINfo[] lstToDoInfo = httpClient.GetAsync("http://localhost:65373/api/RESTApi").Result.Content.ReadAsAsync<TODOINfo[]>().Result;

在上面的函数中,我传递了由 localhost 和固定端口号组成的 url。上面的代码在 Visual Studio 中运行时运行良好。

我通过以下更改在 IIS 上发布了相同的代码。

TODOINfo[] lstToDoInfo = httpClient.GetAsync("http://" + sBaseUrl + "/api/RESTApi").Result.Content.ReadAsAsync<TODOINfo[]>().Result;

sBaseUrl 值为“localhost”。

在 Internet Explorer 上浏览应用程序后出现以下错误。

No MediaTypeFormatter is available to read an object of type 'TODOINfo[]' from content with media type 'text/html'.

任何关于上述问题的信息或建议都非常感谢。

【问题讨论】:

  • 你的意思是我必须在IIS上部署Web API。因为我是 IIS 配置的新手。请给出参考链接。
  • 我还没有完全阅读,但我很确定这会给你你所需要的:support.microsoft.com/en-us/kb/323972 如果你遇到更多问题,请告诉我,稍后我会指导你。
  • 三思而后行 因为您的 API 在同一个项目中,但是最好将其全部保存在 IIS 中的同一个 WebApp 下。但是您必须将 baseURL 更改为主机 + 站点:
  • 感谢您的参考链接。我会通过它。我只是想确认从 Visual Studio 发布应用程序后仍然需要在 IIS 上进行配置。
  • 感谢您的支持。它对我有用.... :)

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


【解决方案1】:

尝试将sBaseURL 更改为"localhost/" +您的网站

另一种选择是将:sBaseURL 更改为:servername/yourwebsite

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多