Azure Cloud Deploy保持回收

WtF*_*dgE 4 cloud deployment azure azure-sql-database

我收到以下错误:

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

运行一个或多个角色实例是不健康的.1个例子:1个不健康

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

这是我做的:

我在我的解决方案中添加了一个云项目,我添加了一个链接到我的web应用程序的webrole我创建了一个sql azure数据库并复制了我的整个结构以及数据到db我在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" />
Run Code Online (Sandbox Code Playgroud)

我有:

    <package id="Microsoft.WindowsAzure.ConfigurationManager" version="1.7.0.0" targetFramework="net35" />
  <package id="WindowsAzure.Storage" version="1.7.0.0" targetFramework="net35" />
Run Code Online (Sandbox Code Playgroud)

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

我没有使用辅助角色,我只有一个正在运行的实例(默认情况下相同)

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

VM大小很小,信任级别=完全信任

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

我读了一些关于"复制本地是真的"的设置引用,但我不确定这是否会有任何区别.

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

编辑:

我修改了所有对"copy local is true"的引用,并且我禁用了诊断,以确保它没有任何问题.

但现在我得到错误:

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

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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

Sha*_* Xu 6

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

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