帖子在描述如何最好地将 web.config 设置转换为 Azure 辅助角色时似乎存在冲突。有些帖子说您需要创建 WaIISHost.exe.config,将输出设置为始终,然后将相关的 web.config 信息复制到该文件。其他帖子描述了 app.config 而不是 WaIISHost.exe 的创建。哪个是对的?
2 回答
这个问题的答案取决于您使用的 SDK 版本。首先,WaIISHost.exe.config 仅适用于 Web 角色(而非工作角色)。工作角色使用并继续使用 app.config 进行配置设置。我将假设您正在尝试在配置设置中配置 Web 角色的 RoleEntryPoint。
现在,对于 Web 角色:如果您使用最新的 SDK(撰写本文时为 1.8),您会发现创建 WaIISHost.exe.config 文件(并复制本地等)不再有效。最新的 SDK 发生了一些变化,它将不再提取这些值。对于早期版本的 SDK,这仍然是您的操作方式。对于最新版本(以及可能的下一个版本)1.8,您可以创建一个 app.config。当你这样做时,它实际上会在你的 bin 目录中创建一个文件,如“WebRoleProjectName.dll.config”。您不必自己手动创建此文件并“复制本地”。像往常一样简单地创建 app.config,你会发现你的 Web Role 中的 RoleEntryPoint 可以像这样配置得很好。
在您之前的SO 帖子中,我建议您在混合在一起时需要花一些时间来了解 Windows Azure 网站和 Windows Azure 云服务。
像上面一样,您将 web 和 worker 角色混合在一起。WaIISHost.exe 是负责加载和运行您的 Web 角色 DLL 的 Windows Azure Web 角色主机进程。此过程与 Worker 角色无关,因为它甚至不存在于 Windows Azure Worker 角色中。此过程仅适用于 Web 角色。因此,您在“WaIISHost.exe.config vs. app.config for worker role config”上面的问题是无关紧要的。
App.config 配置与 Web 角色和工作角色一起使用,但是 web.config 仅与您的 Web 应用程序一起使用。因此,如果您只想配置角色,则可以使用 app.config(具有 web 和辅助角色)但是对于网站配置,您可以使用 web.config。
如果你只是用简单的文字写下你的最终目标,你肯定会得到关于如何做到这一点的确切帮助和建议。