Asp.net web api Web API错误-服务器在'/api&x27;应用
将Web API发布到IIS(AngularJs IIS站点的子站点)后,我可以访问“”并查看所有端点;但是,当我试图通过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
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()
});
}
}