为什么我的Azure WCF服务从Busy变为Ready?

时间:2010-11-04 18:43:18

标签: c# wcf azure

我有一个有效的WCF服务和辅助角色,我一直在Azure Development Fabric上进行本地调试。一切都很顺利,但现在我正试图在暂存环境中将其部署到云中,我看到了一些奇怪的问题。

  1. 我的工作角色,比服务复杂得多,工作正常。它来自初始化 - >忙 - >准备好了。
  2. 但是,我的服务角色来自初始化 - >忙碌然后状态再也不会改变。
  3. 我已经阅读了一些关于Initialize的文章 - >忙 - >停止循环,但这不是我所看到的行为。事实上,当我尝试使用IntelliTrace时,我无法访问该服务的任何日志,因为它永远不会进入无响应状态。我能够访问成功加载的辅助角色的日志。

    如果我看不到任何日志或附加调试器以确定发生了什么,我该如何解决此问题?同样,这项服务在我的本地环境中运行得非常好。

    在有人建议之前,我已经做了以下事情:

    1. 检查DiagnosticsConnectionString并确保其已连接到我的存储帐户
    2. 在部署中启用IntelliTrace。
    3. 检查所有引用的程序集以确保非.NET程序集“copy to local = true”
    4. 如果Azure暴露某种控制台以便我能看到正在发生的事情,那肯定会很棒。

3 个答案:

答案 0 :(得分:1)

今年晚些时候,您将能够使用远程桌面连接并查看正在发生的事情。

目前,您可以联系支持部门,他们应该可以提供帮助。

通常,“忙”是您在OnStart()中执行代码时所处的状态。您的OnStart()实现是否有可能不返回? (或者也许是一些构造函数?)

答案 1 :(得分:1)

根据我的经验,当Azure开始在制作中播放黑盒时,这是由配置问题引起的。其中一个可能的原因 - 配置部分在本地计算机上被识别,但在Windows Azure Guest OS上不可用。

在这种情况下,您的角色甚至没有机会向IntelliTrace或任何记录器(它没有加载)说些什么。

例如,如果您在web.config中有uri config部分,那么它可能在本地工作,但会导致Azure冻结生产中的Web部署。修复(在这种情况下):

在配置/配置中添加以下行:

<section name="uri" type="System.Configuration.UriSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

您的情况可能有所不同。只需查看任何不常见的配置或案例,您正在运行的Azure Guest OS可能不知道架构。

答案 2 :(得分:0)

我遇到了同样的问题,最后以一个空白项目开始。让它在云中运行。添加了几行,部署。

最终(在10次部署之后......你知道需要多长时间???)我让它工作了......原因在于配置文件。我没有把它追溯到一行。

正如smarx建议的那样,联系支持是正确的做法。