Azure 劳工及福利局;同一应用程序中的Web角色

Azure 劳工及福利局;同一应用程序中的Web角色,azure,Azure,我们有一个WebRole,它处理来自WCF服务的请求,这将验证消息,然后将消息放入云存储中的Azure队列。在同一个应用程序中,我们有一个WorkerRole,它从队列中读取信息并调用持久层,持久层处理请求并返回结果。我们想知道为什么工作者角色没有选择我们的任何配置设置,因此没有提供我们正在寻找的跟踪信息。我们意识到工作人员角色可能正在查找app.config,但找不到它 有没有办法将工作者角色指向web配置,或者能够将我们的企业库设置加载到ServiceConfiguration.cscfg文

我们有一个WebRole,它处理来自WCF服务的请求,这将验证消息,然后将消息放入云存储中的Azure队列。在同一个应用程序中,我们有一个WorkerRole,它从队列中读取信息并调用持久层,持久层处理请求并返回结果。我们想知道为什么工作者角色没有选择我们的任何配置设置,因此没有提供我们正在寻找的跟踪信息。我们意识到工作人员角色可能正在查找app.config,但找不到它

有没有办法将工作者角色指向web配置,或者能够将我们的企业库设置加载到ServiceConfiguration.cscfg文件中,这两种情况都意味着可以从一个公共位置读取

非常感谢
Kindo

据我所知,您的工作者角色无法直接访问web角色的web配置

如果将配置项移动到ServiceConfiguration.csfg文件,并且worker和web角色都位于同一个云项目中,则设置将位于同一个文件中。但由于web角色和worker角色是云项目中的不同项目,因此它们的设置位于.csfg文件的不同部分。如果希望两者的设置相同,则必须复制设置

将设置放在此文件中有一个好处,即您可以在角色运行时更改设置,并让角色以自己喜欢的方式响应。例如,您可能希望某些设置重新启动角色,对于其他设置,您可能只希望更新静态变量。为了更新web.config或app.config,您需要重新部署该角色

您需要注意的是,ServiceConfiguration文件不是webconfig的替代品。如果您使用的工具在web或应用程序配置中查找其设置,除非他们特别聪明并且了解Azure环境,否则他们不会在ServiceConfiguration文件中查找设置


我知道您没有问这个问题,但是如果您希望您的工作者角色通过使用请求队列和响应队列为您的web角色提供几乎同步的响应,您可能会发现这不会很好地扩展。如果你想同步调用Azure中的工作者角色,最好使用WCF(指南中没有突出显示这一点)。正如您所说,所有这些都只是一个WCF服务,您的问题的答案可能是取消工作角色。

您不能在Azure中跨角色共享web.config或.cscfg,因为无法保证某个角色与另一个角色位于同一主机、群集甚至数据中心


如果您只是尝试共享连接字符串、特定于应用程序的变量等项,我只需创建您自己的“config manager”类,该类将获取一些XML并将其解析为一组设置。通过这种方式,您可以将该配置存储在Azure Blob存储上,而更改只需更新该Blob并发出重新加载应用程序的信号即可。(使用服务管理API非常容易)。

您可能需要添加ServiceConfiguration文件的原因,以便在角色运行时可以更改它。另外,API也支持这一点。这是很好的反馈,让我们考虑了我们的方法。干杯,科林