【发布时间】:2016-08-24 20:38:49
【问题描述】:
当我运行它时,我的 Web Api 抛出错误。它说
“/”应用程序中的服务器错误
所以,为了解决这个问题,我在 HelpPageAreaRegistration.cs 的 RegisterArea 方法中将 Help/{action}/{apiId} 更改为 {Controller}/{action}/{apiId}。下面是方法。
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"HelpPage_Default",
"Help/{action}/{apiId}",
new { controller = "Help", action = "Index", apiId = UrlParameter.Optional });
HelpPageConfig.Register(GlobalConfiguration.Configuration);
}
现在,问题已经解决了,但是当我运行我的网络应用程序时,它给了我一个错误,说无法连接到远程服务器。下面是从网络应用程序调用 api 的行。
HttpResponseMessage response = await Http.PostAsJsonAsync("Account/Authenticate", model).ConfigureAwait(false);
在 web api 中,
[Route("Authenticate")]
[HttpPost]
[ValidateModel]
public AuthResponseServiceModel Authenticate(AuthRequestServiceModel sm)
{
//code
}
完全不确定我在 api 中的修复如何破坏了 web 应用程序和 web api 之间的连接。 如果我遗漏了什么,请告诉我。
【问题讨论】:
-
假设你启用了属性路由,你的控制器上是否有 [RoutePrefix("Account")]?
-
可能是一个非常愚蠢的疑问;您是否尝试在“/”前缀 Http.PostAsJsonAsync("/Account/Authenticate", model)
-
是的..我试过了..但没有运气..
-
确切的异常消息是“找不到资源”
-
您可以使用 fiddler 或任何其他工具来检查请求吗?感觉跟路由有关系。您确实在 web api 配置中启用了属性路由,是吗? config.MapHttp.... 东西?
标签: asp.net-mvc asp.net-web-api asp.net-web-api-routing