0

我有一个网站,它转换为运行 ASP.NET 网络表单的网络应用程序。

转换成功,我可以在 Azure 模拟器中本地运行它,利用 Azure 计算和 Azure blob 存储。

但是,当我将应用程序发布到 Azure 时,它​​会不断地“等待初始化”(3 小时)。此时,我可以 RDP 进入实例,但错误日志中没有日志。

IIS 已创建,网站按预期位于 e:\ 驱动器中。从本地 RDP 我无法查看网站 (404),并且在 Azure 管理门户中,它只是处于初始化阶段,每次刷新都会更新中止时间。

我怎么知道问题是什么?

4

3 回答 3

2

它通常发生在错误的 web.config 和/或缺少依赖项的情况下。

这是你可以用它做的事情。

  1. 转到项目中每个引用的属性并将“复制本地”设置为 true。
  2. 双重/三重检查 web.config 中的每个配置部分。确保您指向正确的数据库(如果有)。
  3. 确保您的任何组件都没有在 Azure 上进行直接磁盘调用。有一种方法可以在 Azure 中预配它们,只是您必须在 azure 项目属性的“本地资源”设置中处理一些额外的管道。
  4. 如果您使用的是 SQL Azure,请确保将数据库实例上的防火墙设置为允许来自您的计算实例的调用。

希望这可以帮助。

于 2012-04-27T05:34:04.707 回答
1

这些通常是启动问题或参考库问题。你有任何启动任务吗?

我会一一删除您在 WebRole.cs 文件中执行的启动任务和活动,然后从那里开始。我知道非常令人沮丧,有时我花了很多天试图找出问题

于 2012-04-27T05:31:07.790 回答
0

根据您在问题描述中提到的内容,我假设:

  1. 您可以 RDP 到您的 Azure 实例
  2. 远程进入 Azure VM 后,使用内部 IP 地址打开网页,即http://10.xxx/
  3. 并且您收到 404 错误(找不到文件 - 标准 HTTP 错误消息)

有时网站现在确实有默认页面设置,即 default.aspx 或 index.aspx,并尝试使用http://10.xxx/基本 URL 打开默认页面并生成错误。如果您尝试打开一个您知道存在的页面,例如http://10.xxx/somepage.aspx会怎样。只要 webroot 中有 somepage.aspx,它就应该在浏览器中打开。

因为您的 Web 角色未处于就绪状态,我相信您的角色还有其他问题。这里有很多事情可以尝试根本原因:

  1. 检查事件日志中是否有任何记录的异常,因为角色正在初始化我相信您可以在事件日志中获得一些异常
  2. 查看 C:\Logs\ 文件夹中与 AzureBootStrapper 或 IISConfigurator 相关的任何异常
  3. 尝试将 E:\AppRoot 与您的开发机器 \package\ 匹配,以查看是否缺少任何参考(此问题也将记录在事件日志中)
  4. 我不确定您的代码如何依赖于 Azure Blob 存储,但是如果您的启动中有一些东西依赖于 Azure Blob 存储,请从 Azure VM 验证您确实与那里有连接

根据我在 Azure VM 中挖掘的丰富经验,这个问题可能很难猜测或写为答案,因为每个案例都可能非常不同,我们大多可以提供一个非常通用的根本原因指南。

于 2012-05-01T17:09:35.177 回答