初始化asp.net部署

时间:2015-09-03 20:37:55

标签: asp.net

我有一个基本的webforms asp.net网站。目前它正在研究预先创建的sql表,我必须手动将其更新以更新数据。虽然转向实时部署,但我希望让它更舒适。

我如何制作它以便每当服务器软件加载它时,它在接受任何请求之前做的第一件事就是运行初始化子程序?这样我就可以确保所有的表都在那里,如果没有,我会创建它们等等。

另外,我想运行另一个可以每隔几个小时定期触发数据更新的子服务器。我想如果我可以得到我的初始化子,我可以产生一个后台线程来处理它,但如果有一个内置选项,我会接受它。

2 个答案:

答案 0 :(得分:0)

这就是所谓的“部署”。

如果您的网站是通过MSI部署的,则此步骤应在MSI中完成。

如果您的网站是通过Visual Studio“发布”选项部署的,那么您需要创建表格。

有些应用程序的确如你所说,例如:在第一次运行时创建SQL表。这种方法的问题在于您的应用程序需要sa权限,而不是简单的读/写。这可能会导致安全问题。

在网站启动(初始化所属的位置)上运行的代码位于global.asax中:

protected void Application_Start()

答案 1 :(得分:0)

  

每当服务器软件加载

在asp.net中,你有global.asax文件 - 打开后面的代码并查看可能的覆盖。其中包括:

protected void Application_Start()

这始终在应用程序启动时运行,您可以使用它来检查数据库。

如果您处于“内部”环境中,那里只有一个实时数据库服务器和一个实时应用程序服务器,那么应​​该可以假定数据库是在应用程序之前部署的,您不需要这个。如果您向第三方提供申请或在网上提供申请,那么这是一个值得检查的好地方。如何生成数据库取决于你,但在这里检查是个好主意。您还可以在您的站点上有一个(隐藏的)管理页面来检查数据库连接等。

  

定期触发数据更新

这不会内置于asp.net,因为asp.net会等待请求并响应它们。有很多方法,但通常在应用程序外部触发。最简单的是一个简单的Windows计划任务,它会命中一个页面来触发检查。