我使用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;
在Above函数中,我传递的url包含localhost和固定端口号。在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'.
非常感谢有关上述问题的任何信息或建议。
答案 0 :(得分:1)
尝试将sBaseURL
更改为"localhost/"
+ 您的网站
另一种选择是将sBaseURL
更改为: servername / yourwebsite