4

我收到以下错误:

回收(等待角色开始......正在部署站点。[2012-12-17T05:30:10Z])

运行一个或多个角色实例不正常。1 实例:1 不健康

我实际上是在尝试将我的 Web 应用程序转换为云应用程序。

这是我所做的:

我在我的解决方案中添加了一个云项目,我添加了一个链接到我的 Web 应用程序的 webrole 我创建了一个 sql azure 数据库并将我的整个结构以及数据复制到数据库中我在我的 webconfig 中插入了连接字符串并尝试运行它在仿真上,这工作得很好,然后尝试通过创建云服务、运行构建器来创建包并以“暂存”模式上传包来部署它。这是我得到错误的地方。

我试图创建一个空的云应用程序并添加一个默认的 webrole 并将其加载到云中,这很好。所以我想,也许我的 webrole 设置有问题。我检查了两者之间的区别,我注意到在两个解决方案中都启用了诊断,但在我自己的解决方案中存储帐户为空,因此我在此处插入了“UseDevelopmentStorage = true”。这并没有改变任何东西。我还看到了“packages.config”的不同之处

默认角色有:

<package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net40" />
  <package id="System.Web.Providers" version="1.1" targetFramework="net40" />
  <package id="System.Web.Providers.Core" version="1.0" targetFramework="net40" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net40" />

我的有:

    <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net35" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net35" />

我试着改变这个并上传,没有做任何事情

我没有使用工作者角色,我只有 1 个正在运行的实例(与默认值相同)

我的应用程序在 global.asax 中使用了一些身份验证,它尝试从 User.Identity.Name 读取并与数据库中的用户进行比较(该用户被插入到 sql azure db 中)。起初我认为这可能是问题的原因,但即使我注释掉这段代码,应用程序也不会在云上运行。

VM 体积小,信任级别 = 完全信任

我还看到了我有远程访问参数的设置的一些差异。我尝试删除所有这些只是为了排除问题

我读了一些关于“复制本地是真的”的设置引用,但我不确定这是否会有所不同。

任何想法,因为我真的不知道该做什么了

编辑:

我修改了所有对“本地复制为真”的引用,并且我禁用了诊断,以确保它没有任何问题。

但现在我得到了错误:

<!-- Web.Config Configuration File -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

有趣的是,在我的 webconfig 中,这已经设置好了……而且我只能找到 1 个 webconfig。我不太确定我做错了什么

4

2 回答 2

6

“保持回收”几乎总是意味着在您的应用程序启动时发生了一些异常。您可能无法通过诊断监视器看到任何错误或异常,因为您的异常可能在您配置和启动诊断之前发生。

我建议您在部署时启用 IntelliTrace 选项。如果您使用的是 Visual Studio,这很容易做到。然后您可以通过 Visual Studio 检索 IntelliTrace 结果并找出发生了什么异常。我强烈认为在 azure 上遗漏了一些需要设置 Copy Local = true 的参考。但是您需要 IntelliTrace 才能找到它们。

于 2012-12-18T02:29:03.313 回答
3

问题是我有一些引用的项目有一个 app.config 文件,其中包含一个本地数据库的字符串

于 2013-01-04T07:47:27.933 回答