2017-10-15 56 views
0

我使用“空白”设置创建了一个新的ASP.NET Web应用程序项目。这意味着我没有得到任何类,并且是一个相当简单的Web.config文件。我第一次启动程序时需要更改哪些文件或配置设置才能运行静态类方法?ASP.NET服务器启动代码在哪里去?

enter image description here

注:我尝试添加与构造一个Startup.cs类,但没有工作,我试图与孩子<add>标签指定owin appStartup加入<appSettings>标签,但没有任何工作。

+0

使用“空白”模板意味着您足够了解您正在做什么以无脚手架开始。尝试使用另一个为您创建启动功能的模板。 – NightOwl888

+0

我想知道我在做什么。我不需要一个模板,因为我将拥有最多的WebSocket服务器,但是我希望在某人首次访问websocket端点之前运行一些逻辑。 – AjaxLeung

+0

如果您知道我需要做什么,我将非常感激。 – AjaxLeung

回答

0

无需学习复杂的IIS配置,一个非常简单的方法就是使用ASP.NET Core进行自我托管。

首先,安装.NET核心:https://www.microsoft.com/net/learn/get-started/windows

二,而不是跟随他们的步骤来创建一个新的控制台应用程序,请执行以下命令行指令:

  1. 为您的项目创建一个目录mkdir MyProject
  2. 输入到该目录cd MyProject
  3. 创建一个空白的ASP.NET核心应用dotnet new web
  4. 运行它dotnet run

这将创建并运行一个新的空白ASP.NET Web应用程序,你可以在http://localhost:5000

两类访问将已生成:Program.csStartup.csStartup.cs将包含处理请求和服务响应的逻辑,而Program.cs将包含MainBuildWebHost方法。

服务器启动代码进入静态Main方法,允许您在Web服务器甚至初始化之前初始化任何您可能想要的内容。

使用.NET Core的额外好处是,您不仅可以在Windows上运行此操作,而且还可以在所有* nix系统(Linux,MacOSX)上运行此操作。

0

这一切都始于global.asax。 IIS管道编译global.asax,它通常引用一个从HttpApplication继承的global.asax.cs。应用程序随后由管道实例化,并且其事件处理程序在发生管道事件时调用。将所有东西都关闭的东西是该应用程序的构造和Application_Start事件,在该事件中组成对象图,注册包和路由等。

当然还有很多其它的东西,但这就是它开始的一切,如果你想尝试自己重建一个工作网站。

+0

Global.asax Application_Start仅在第一个请求完成后才运行。我希望在服务器启动后立即运行一些东西,这样我就可以创建一些共享内存结构,这些结构可以在所有不同的请求之间进行访问,并且在进行任何请求之前进行初始化。 – AjaxLeung

+1

您可以使用应用程序预热或启动提供程序。看到[这个问题](https://stackoverflow.com/questions/28559553/application-start-vs-serviceautostartproviders)。 –

+0

谢谢!这就是我一直在寻找的!虽然看到所有涉及的步骤,但我可能会使用OWIN并避免使用IIS。 – AjaxLeung

相关问题