0

我正在尝试找出如何在 Azure 中托管 ISAPI DLL。除了 DLL,我还需要在子目录中部署支持文件(javascript 和 css 文件)。其中两个子目录可以通过 DLL 处理的请求更改其内容,因此我需要确保执行扩展的帐户对这些具有写权限。

似乎所有这一切的关键是使用启动任务调用 appcmd 以某种方式编写所有 IIS 更改的脚本,我认为我需要执行以下操作:-

  • 使用我的 ASP.NET 网站部署我的 ISAPI DLL 和支持文件
  • 创建一个启动任务,该任务将调用一个批处理文件,利用 appcmd.exe 执行以下操作:-
    • 创建一个专用应用程序池,将其托管管道模式设置为经典,并使用已知用户帐户
    • 创建一个指向我的 ISAPI dll 所在目录的 IIS 应用程序
    • 确保应用程序配置为允许未知 ISAPI 扩展
    • 更改所需子目录的权限,以便与应用程序池关联的用户帐户具有写入权限

我才刚刚开始探索 Azure,所以我对它的体验非常薄弱。我希望实现的目标真的可以实现吗?如果是这样,我在所需步骤方面是否走在正确的轨道上?如果我在习惯处理的传统 IIS 环境中设置此 ISAPI DLL,它们会模仿我需要做的事情,但如果 Azure 的规则不同,请告诉我。

4

2 回答 2

0

好吧,这里唯一困扰我的是您正在修改“部署驱动器”上的数据(E:就此而言)。你不应该这样做。

相反,请考虑其他解决方案。您可以创建一个 LocalResource 来保存您的 javascript 和 CSS 文件。然后,当你的角色开始时(Richard 有一个关于启动任务的有效观点),使用 ServerManager 类执行以下操作:

  1. 注册ISAPI dll
  2. 在 Azure 创建的网站下添加 2 个虚拟目录,并将它们指向 LocalResource。
  3. 修改您的 ISAPI dll 的代码以修改 LocalResource 中的 JS/CSS 文件

在 Web/WorkerRoles 中开发时,您需要记住您应该只操作 LocalResource 中的文件。

于 2012-10-03T10:36:40.907 回答
0

看起来顺序不错,但是,启动任务实际上是在 IIS 完全配置之前运行的。RoleEntryPoint 中的“OnStart”事件在 IIS 设置后调用,因此使用 Azure 为您创建的 IIS 应用程序并重新配置它以包含您的 ISAPI 内容可能更容易。

于 2012-10-03T10:11:29.460 回答