角色环境。初始化失败

Posted

技术标签:

【中文标题】角色环境。初始化失败【英文标题】:Role environment . FAILED TO INITIALIZE 【发布时间】:2015-08-05 18:30:00 【问题描述】:

我有许多 Azure 网站在单实例标准 S2 层上运行(每个站点在它自己的实例上)。这些站点位于不同的区域,它们运行完全不同且独立的代码。我注意到,如果我在我的任何网站上查看 eventlog.xml 文件,我会看到许多 Role environment . FAILED TO INITIALIZE 事件出现。以下是该文件的摘录:

<Event>
    <System>
        <Provider Name="Windows Azure Runtime 2.5.0.0"/>
        <EventID>1013</EventID>
        <Level>0</Level>
        <Task>0</Task>
        <Keywords>Keywords</Keywords>
        <TimeCreated SystemTime="2015-05-06T07:07:35Z"/>
        <EventRecordID>976923406</EventRecordID>
        <Channel>Application</Channel>
        <Computer>RD000XXXXXE</Computer>
        <Security/>
    </System>
    <EventData>
        <Data>4008</Data>
        <Data>w3wp</Data>
        <Data>Role environment . INITIALIZING</Data>
    </EventData>
</Event>
<Event>
    <System>
        <Provider Name="Windows Azure Runtime 2.5.0.0"/>
        <EventID>1013</EventID>
        <Level>0</Level>
        <Task>0</Task>
        <Keywords>Keywords</Keywords>
        <TimeCreated SystemTime="2015-05-06T07:07:36Z"/>
        <EventRecordID>976923937</EventRecordID>
        <Channel>Application</Channel>
        <Computer>RD000XXXXXE</Computer>
        <Security/>
    </System>
    <EventData>
        <Data>4008</Data>
        <Data>w3wp</Data>
        <Data>Role environment . INITIALED RETURNED. HResult=-2147024891</Data>
    </EventData>
</Event>
<Event>
    <System>
        <Provider Name="Windows Azure Runtime 2.5.0.0"/>
        <EventID>1015</EventID>
        <Level>3</Level>
        <Task>0</Task>
        <Keywords>Keywords</Keywords>
        <TimeCreated SystemTime="2015-05-06T07:07:36Z"/>
        <EventRecordID>976924062</EventRecordID>
        <Channel>Application</Channel>
        <Computer>RD000XXXXXE</Computer>
        <Security/>
    </System>
    <EventData>
        <Data>4008</Data>
        <Data>w3wp</Data>
        <Data>Role environment . FAILED TO INITIALIZE. hr: -2147024891</Data>
    </EventData>
</Event>

我还注意到,这些事件与网站的短暂中断(仅一两分钟)同时发生。这些事件似乎是随机的。有时一个小时可以有 20 个事件。其他时候,它可能会持续数天没有任何事件。

我正在尝试了解导致这些事件的原因以及我如何(或是否)可以防止它们。我宁愿根本不让我的网站宕机。我可能可以通过为每个站点设置多个实例来缓解这个问题,但即便如此,我至少希望对这里发生的事情有一个很好的答案。

注意:这些站点部署到 Azure 网站,而不是云服务(即不是 Web 或工作角色)。

【问题讨论】:

您的代码是否以任何方式引用 RoleEnvironment? Azure Web 应用程序(以前称为 Azure 网站)不支持此功能,因此在访问时可能会引发异常。如果您的应用程序没有正确处理该异常(=它没有捕获它),它可能会关闭您的工作进程,这可能会导致您看到的情况(您网站的访问者中断)。 谢谢。是的,我确实看到了对RoleEnvironment 的引用。我希望这就是问题所在。我会调查并告诉你我发现了什么。 @kaques:这解决了你的问题吗? ping @kaques 你发现了什么? 【参考方案1】:

这些事件是在您在 Web 应用中引用 Azure 诊断时编写的。对于 Web 应用程序,不建议使用此选项。在云服务中使用它是有意义的,但在 Web 应用程序中则不然。 这有时会影响应用程序。

【讨论】:

以上是关于角色环境。初始化失败的主要内容,如果未能解决你的问题,请参考以下文章

懒惰地初始化角色集合失败

NHibernate - 延迟初始化角色集合失败

使用 SpringBoot 懒惰初始化角色集合失败

懒惰初始化角色集合失败:someEnttiy.otherTitles

LazyInitializationException: 延迟初始化角色集合失败 无法初始化代理 - 没有会话

org.hibernate.LazyInitializationException:懒惰初始化角色集合失败(Hibernate + Spring)