2012-04-27 43 views
0

我有一个网站转换成运行ASP.NET webforms的网络应用程序。网站转换为Web应用程序 - Azure出现问题

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

但是,当我将应用程序发布到Azure时,它始终处于“等待初始化”状态(持续3个小时)。此时,我可以将RDP放入实例中,但错误日志中没有日志。

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

我怎么知道这个问题是什么?

+0

这种情况发生的常见原因之一是存储或诊断的连接字符串不正确。仔细检查它们。 – Chandermani 2012-04-27 05:30:24

+0

我已经删除了启用诊断复选框,所以我不认为这会是问题。 – Paul 2012-04-27 05:39:26

回答

2

它通常发生在一个糟糕的web.config和/或缺少依赖关系。

这是你可以用它做什么。

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

希望这会有所帮助。

+0

即使在本地模拟器中,这些东西(排除第1点)是否会导致问题?这工作正常。 – Paul 2012-04-27 05:36:02

+0

您对Prod vs Debug版本有不同的部署设置吗?这些可能会导致问题。打开你从VS创建的软件包,并看看DLL和web.config – Mark 2012-04-27 05:57:54

+0

第一步似乎已经解决了它,非常感谢那 – Paul 2012-04-27 06:02:53

1

这些通常是starup问题或引用库的问题。你有任何启动任务吗?

我会逐个删除启动任务,激活你在WebRole.cs文件中做的并从那里开始。我非常沮丧,我知道,我花了很多天试图找出问题有时

+0

我只在global.asax中有application_startup代码,但是如果它无法连接到数据库,它应该会引发异常。我已经将存储设置为使用存储帐户凭证,我的名字是name.blob.core.windows.net的url和主要访问键。 WebRole.cs中没有任何东西 – Paul 2012-04-27 05:33:38

0

基于您在您的问题描述中提到了我认为:

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

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

由于您的Web角色未处于就绪状态,因此我认为您的角色还存在其他一些问题。这里有很多事情要尽量根源:

  1. 检查事件日志中的任何记录异常,因为角色是初始化我相信你可以得到一些例外,在事件日志中
  2. 看看C: \ Logs \文件夹以查找与AzureBootStrapper或IISConfigurator相关的任何异常
  3. 尝试将E:\ AppRoot与开发机器\软件包\相匹配,以查看是否有任何缺少的引用(此问题也将记录在事件日志中)
  4. 我不确定你的代码如何依赖于Azure Blob存储,但是如果你的启动中有某些东西依赖于Azure B LOB存储请从Azure的VM验证你必须连接到基于我Azure的VM内部挖掘丰富的经验,有

问题可能很难猜测或写的答案,因为每一种情况下可能会非常不同,我们主要可以为根本原因提供非常一般的指导原则。

相关问题