使用Webmatrix 3或类似的启动任务的Windows Azure网站(不使用Visual Studio)

我知道,Azure网站是很容易,没有angular色configuration等…但我仍然想知道,有没有办法创build一个启动任务,当使用网站? 我问,因为我想通过FTP和Webmatrix(不重新编译源代码,而不使用Visual Studio)缓解现有网站的部署,然后使用启动任务来部署和安装额外的组件(水晶报表,ActiveX Dll的。 ..)感谢您的答案Mokh PS:我的问题是这一个的副本和粘贴: Windows Azure网站与启动任务

是的,在Windows Azure网站中有多种方法来实现与云服务启动任务等效的功能。 主要的区别和限制是您将无法使用提升的权限运行这些启动任务。

这些方法利用了在Windows Azure Websites中运行的Web应用程序可以派生进程并写入磁盘的事实。 他们甚至可以导致可执行文件运行。

因此,您可以编写一个ASP.NET应用程序,并使用Global.asaxApplication_Start方法运行批处理文件,该文件将在文件系统上安装某些内容。 正如在SiteStartupTask示例项目中所演示的那样,您可以像这样编写一个Global.asax文件来执行任何命令:

 <%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e) { string WindowsDir = Environment.GetEnvironmentVariable("windir"); string command = System.IO.Path.Combine(WindowsDir, @"System32\cmd.exe"); string outputFilePath = server.MapPath("~/Log.txt"); string arguments = String.Format("/c echo Startup task executed at {0} >>\"{1}\"", System.DateTime.UtcNow.ToString("o"), outputFilePath); System.Diagnostics.Process.Start(command, arguments); } </script> 

您也可以编写一个Web服务或HTTP端点,在接收到POST HTTP请求时,它将执行相同的操作,因此您可以远程触发启动任务(甚至可能向其提交参数)。

无论如何,你在应用程序启动时可以做的事情将受到你的应用程序运行的用户的安全特权的限制。 您将无法执行任何需要管理员权限的内容,但是您将能够执行任何可以以普通用户身份执行的内容。