3

我知道 Azure 网站很容易,没有角色配置等......但我仍然想知道,有没有办法在使用网站时创建启动任务?我之所以问,是因为我想通过 FTP 和 Webmatrix 简化现有网站的部署(不重新编译源代码并且不使用 Visual Studio),然后使用 Startup Task 部署和安装附加组件(Crystal Reports、ActiveX Dll. ..) 感谢您的回答 Mokh PS:我的问题是这个问题的复制和粘贴:带有启动任务的 Windows Azure 网站

4

1 回答 1

1

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

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

因此,例如,您可以编写一个 ASP.NET 应用程序并使用Application_Startin 方法Global.asax运行一个批处理文件,该文件将在文件系统上安装一些东西。正如WebsiteStartupTask示例项目中所展示的,您可以编写一个这样的 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 请求时,它会执行相同的操作,因此您可以远程触发您的启动任务(甚至可能向其提交参数)。

在任何情况下,您在应用程序启动时可以执行的操作将受到您的应用程序运行用户的安全权限的限制。您将无法执行任何需要管理员权限的操作,但您将能够执行任何可以作为普通用户执行的操作。

于 2013-07-25T16:48:45.880 回答