首页 > 解决方案 > ASP.NET WebAPI 方法只能在本地工作,但不能在 WebServer 上工作

问题描述

我创建了一个 WebAPI,所有路由和方法都可以在本地完美运行: WebAPI Local

问题是当我把它放在我的网络服务器上时(本地和网络测试在同一台服务器上,所以到数据库的连接字符串是正确的。)。

标准网站和标准方法正常工作,但我创建的不起作用(500 Internal Server Error):
WebAPI Server Web
WebAPI Server Web Default Methods
WebApi Server Web Default WebSite

它如何在本地而不是网络上完美运行?因为代码中没有任何变化?

错误就好像 url 不存在。

这些是 web api 方法和 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 服务器时遇到了问题,但我通过本教程进行了管理:http: //lexisnexis.custhelp.com/app/answers/answer_view/a_id/1089877/~/installing-sql-在 -a-domain-controller 上

之后我指向 SQLServe 实例而不是 LocalDB 并且它起作用了。

标签: c#asp.net-web-api

解决方案


您需要提供有关您的控制器的更多信息

如果不存在,请将其放在控制器上 [Route("api/[controller]")]


推荐阅读