自托管网络服务将无法运行

时间:2021-04-15 17:19:36

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

我正在尝试构建一个在 Windows 服务中自托管的 Web 服务 API。我从创建新 Web API 项目时 Visual Studio 2019 创建的模板代码开始,并删除了所有页面内容,因为我的服务中不会显示实际页面。我能找到的我的项目和剥离模板项目之间的唯一区别是,我的项目以 main() 开头,而模板以 Global.asax 代码开头。最后,我会将 main() 中的代码替换为启动 Windows 服务的代码,但现在,我只想在 IDE 调试器中运行它。

private static void Main()
{
    try
    {
        var config = new HttpSelfHostConfiguration("http://localhost:8080");

        config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        using (var server = new HttpSelfHostServer(config))
        {
            var serverTask = server.OpenAsync();
            serverTask.Wait();
        }
    }
    catch (Exception e)
    {
        UtilityFunctions.MessageLog(e.Message, 2, e);
    }
}

我使用的是在 Visual Studio 2019 创建新的 Web API 项目时创建的 ValuesController.cs,在我的模板项目中,它可以工作。该页面丢失,因为我删除了它,但我可以在浏览器中输入 api 路径并从正在运行的 Web 服务中获取结果。使用我的代码,它只是开始和停止。 serverTask.Wait() 立即结束。我不明白我做错了什么。我还尝试在管理员权限下运行 Visual Studio 2019,结果没有变化。

0 个答案:

没有答案