【发布时间】:2019-10-06 04:17:54
【问题描述】:
将 Web API 发布到 IIS(AngularJs IIS 站点的子站点)后,我可以访问“https://localhost/api”并查看所有端点;但是当我尝试使用GET 请求到达某个特定端点时,我收到了一个错误
“/”应用程序中的服务器错误
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
[RoutePrefix("api/branches")]
public class BranchesController : ApiBaseController
{
[HttpGet]
[Route("getBranches")]
public async Task<JsonResult<List<BranchDto>>> GetActiveBranches()
{
var branches = new List<BranchDto>();
var models = await WarehouseUnitOfWork.BranchRepository.GetActiveBranches();
if (models != null && models.Count > 0)
{
branches.AddRange(AutoMapper.Mapper.Map<List<Branch>, List<BranchDto>>(models));
}
return Json(branches, new JsonSerializerSettings
{
ContractResolver = new WarehouseCustomContractResolver()
});
}
}
有什么办法解决这个问题吗?
【问题讨论】:
-
你试过
http://localhost/api而不是https://localhost/api吗? -
是的,我已经尝试过了。我还能做什么?
-
你能发布你的 API 代码吗?
-
@VoiceOfTheRain 你想看一个特定的控制器吗?
-
发布您的 Web api 路由配置以及您的 API 控制器之一
标签: asp.net-web-api asp.net-web-api2