部署 asp 网络核心 Web 应用程序后找不到 Web API 404



I 使用 vs 2017 创建一个包含两个项目的解决方案:

  • 1- 网页接口
  • 2-通过角度服务访问WebApi控制器的ASP .Net Core Web应用程序。

我有一个 Web API 控制器

[Route("api/[controller]/[action]")]
public class ClientController : Controller
{
// GET: api/Client/Get
[HttpGet]
public JsonResult Get()
{
ClientQuery _Query = new ClientQuery();
List<ClientLisModel> _Results = _Query.GetAll();
return new JsonResult(_Results);
}

在我的角度服务中,我创建了一个函数来访问此控制器操作:

this.getListeClient = function getListeClient() {
var deferred = $q.defer();
$http({
method: 'GET',
url: '/api/Client/Get'
})
.then(function (data) {
deferred.resolve(data);
})
.catch(function (msg, code) {
deferred.reject(msg);
$log.error(msg, code);
});
return deferred.promise;
}

当我从 vs 2017 运行我的应用程序时,一切正常。 .但是当我在 iis 7.5 中将其部署到 MyWeb 网站时。我有这个错误:

获取 http://localhost/api/Client/Get 404(未找到)

它应该寻找 http://localhost/MyWebSite/api/Client/Get

我的 Web.config 是:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".Application.UI.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" />
</system.webServer>
</configuration>

谢谢!

此问题的解决方案是在 anuglar 模块中使用 config。

所以在我的角度js模块中,我添加了这一行:

(function () {
'use strict';
angular.module('clientApp', ['ui.bootstrap', 'smart-table']);
angular.module('clientApp').constant('config', {
apiUrl: 'http://localhost:55555',
baseUrl: '/',
enableDebug: true
});
})();

我像这样修改我的角度js服务:

angular
.module('clientApp')
.service("clientService", function (config, $http, $q) {
this.getListeClient = function getListeClient() {
var deferred = $q.defer();
$http({
method: 'GET',
url: config.apiUrl + '/api/Client/Get'
})
.then(function (data) {
deferred.resolve(data);
})
.catch(function (msg, code) {
deferred.reject(msg);
$log.error(msg, code);
});
return deferred.promise;
}

发布我的应用程序后,我只是修改了mu angularjs模块中的"apiUrl"。

相关内容

  • 没有找到相关文章

最新更新