Asp.net web api Web API错误-服务器在'/api&x27;应用

Asp.net web api Web API错误-服务器在'/api&x27;应用,asp.net-web-api,asp.net-web-api2,Asp.net Web Api,Asp.net Web Api2,将Web API发布到IIS(AngularJs IIS站点的子站点)后,我可以访问“”并查看所有端点;但是,当我试图通过GET请求到达某个特定端点时,我得到了一个错误 “/”应用程序中的服务器错误 公共类WebAPI应用程序:System.Web.HttpApplication { 受保护的无效应用程序\u Start() { RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConf

将Web API发布到IIS(AngularJs IIS站点的子站点)后,我可以访问“”并查看所有端点;但是,当我试图通过
GET
请求到达某个特定端点时,我得到了一个错误

“/”应用程序中的服务器错误

公共类WebAPI应用程序:System.Web.HttpApplication
{
受保护的无效应用程序\u Start()
{
RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
公共静态类WebApiConfig
{
公共静态无效寄存器(HttpConfiguration配置)
{
config.SuppressDefaultHostAuthentication();
添加(新的HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.maphttpAttribute路由();
config.Routes.MapHttpRoute(
名称:“DefaultApi”,
routeTemplate:“api/{controller}/{id}”,
默认值:新建{id=RouteParameter.Optional}
);
}
}
[RoutePrefix(“api/分支机构”)]
公共类BranchesController:ApiBaseController
{
[HttpGet]
[路线(“GetBranchs”)]
公共异步任务getActiveBranchs()
{
var branchs=新列表();
var models=await WarehouseUnitOfWork.BranchRespository.GetActiveBranchs();
if(models!=null&&models.Count>0)
{
AddRange(AutoMapper.Mapper.Map(models));
}
返回Json(分支、新JsonSerializerSettings
{
ContractResolver=新仓库CustomContractResolver()
});
}
}

有什么办法可以解决这个问题吗?

我的案例解决方案是将前端部署到主IIS站点,并在其中为后端创建一个名为
v1
的应用程序。 然后在我的angularJS中,我定义了生产应用程序来向
/v1/api
发出http请求,而不是
/api


您是否尝试过
http://localhost/api
而不是
https://localhost/api
?是的,我已经试过了。我还能做什么?你能发布你的API代码吗?@VoiceOfRain你想看到一个特定的控制器吗?发布你的web API路由配置和一个API控制器
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()
        });
    }
}