1

在 Azure Web 角色中,我想检索生成程序集的日期/时间。我已经看到了一些通过从 PE 标头中检索链接器时间戳来执行此操作的技巧,但这需要您阅读在 Azure 项目中似乎不起作用的Assembly.Location 。我得到这个例外:

NotSupportedException - 动态程序集中不支持调用的成员

也许有更好的方法来获取这些信息。也许我可以获取部署 Web 角色的日期/时间?这对我也有用。

谢谢你的帮助。

4

2 回答 2

0

你在问两个不同的事情。很有可能编译/构建代码的时间与部署角色的时间有很大的不同。因此,您可能会获得相同的日期/时间,也可能不会,除非您控制构建和部署相同的时间,否则无法保证。

如果您的目标是了解角色的部署时间,您可以在多个位置添加此日期/时间,并直接在您的角色特定代码中检索它。我不确定是否有办法从角色中获取部署时间,稍后会深入研究。

以下是我立即想到的一些建议:

  1. 在您的服务配置中创建一个“字符串”设置并在您的角色特定代码中读取它。请记住,您不能直接在特定于 Web 角色的 W3WP.exe 进程中获取服务配置设置,因为这两个进程单独运行并且需要一些额外的编码。

  2. 您还可以将日期/时间添加到服务配置并在启动任务中访问以进一步处理,如下所示:http: //blogs.msdn.com/b/avkashchauhan/archive/2011/11/09/how-to-access-服务-配置-设置-在-windows-azure-startup-task.aspx

  3. 您可以在 App.Config 中添加日期/时间设置并访问它。我在这里描述过:http: //blogs.msdn.com/b/avkashchauhan/archive/2011/10/25/reading-configuration-entries-using-system-configuration-configurationmanager-class-in-a-windows-azure -application.aspx

于 2012-05-04T16:59:02.637 回答
0

在您链接到的解决方案中,而不是这样做:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();

尝试这样做:

System.Reflection.Assembly assembly = typeof(AClassInMyAssembly).Assembly;

我不确定这会奏效,但我认为它可能会奏效。如果没有,您可能会考虑组装版本是否适合您的目的。

于 2012-05-05T16:38:08.813 回答