从.net核心控制台应用程序引用asp.net核心Web应用程序

时间:2019-10-10 09:36:16

标签: c# asp.net .net asp.net-core .net-core

我有一个ASP.NET Core 3.0 Web应用程序(用于设置SignalR服务器),我想从.net Core控制台应用程序开始。但是,每当我将ASP.NET应用程序的输出类型设置为“控制台应用程序”并从简单的测试.net核心应用程序引用它时,在构建时都会出现以下错误:

Error: Program does not contain a static 'Main' method suitable for an entry point.

它还抱怨找不到Web应用程序的.dll文件,但是我想那是由于其他构建错误。 每当我将ASP.NET core 3.0 Web应用程序输出类型设置为“类库”时,一切都构建良好。仅当我尝试从控制台应用程序启动Web应用程序时,它才部分启动。我可以清楚地看到正在添加SignalR服务和端点,但是当我尝试将客户端连接到SignalR服务器时,这是不可能的。我想念什么?为什么我不能从.net核心控制台应用程序启动asp.net核心Web应用程序?

请注意:当我从Web应用程序本身的主要功能(使用与控制台应用程序中使用的相同代码)启动Web应用程序时,一切正常。

2 个答案:

答案 0 :(得分:1)

您不能只是参考项目。它不会执行任何操作,因为它实际上需要运行。您需要发布和部署ASP.NET Core应用,然后从控制台应用通过HTTP访问它。

答案 1 :(得分:0)

通常,您不应该从控制台应用程序启动Web应用程序。您应该使用Host and deploy ASP.NET Core中的选项进行部署。

出于测试目的,您可以按照以下步骤操作:

  1. 从.net核心控制台应用程序引用Asp.net Core Web应用程序
  2. 在Console App中将以下代码添加到Program.cs

    CoreAPI.Program.Main(args);
    
    namespace ConsoleApp1
    {
    class Program
    {
            static void Main(string[] args)
            {
                 Console.WriteLine("Start .net core");
                 CoreAPI.Program.Main(args);           
            }
    }    
    }