我创建了一个WebAPI,所有的路由和方法都在本地完美地工作:WebAPI本地
问题是当我把它放在我的web服务器上时(本地和web测试都在同一台服务器上,所以到数据库的连接字符串是正确的)。
标准网站和标准方法正常工作,但我创建的网站和标准方法不起作用(500内部服务器错误):
它怎么能完美地在本地而不是网络上工作呢?因为代码里什么都没变?
错误就好像url不存在一样。
这些是web方法和RouteConfig文件的代码。
[Route("WebApi/Users/GetAll")]
[HttpGet]
public IEnumerable<User> GetAll()
{
return _userRep.All;
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
更新:查看windows应用程序事件日志中的,我注意到与localdb相关的几个错误。我不知道为什么它不适用于LocalDB。由于我的服务器也是域控制器,所以安装SQL server时遇到了问题,但我使用本教程管理:id/1089877/~/安装-sql on-a域控制器。
之后,我指向了SQLServe实例,而不是LocalDB,并且它工作了。
发布于 2020-06-26 03:19:25
您需要提供有关控制器的更多信息。
如果不存在[Route("api/[controller]")]
,则将其放在控制器上。
https://stackoverflow.com/questions/62587099
复制相似问题