如何让 Azure 云服务教程正常工作

Posted

技术标签:

【中文标题】如何让 Azure 云服务教程正常工作【英文标题】:How to get Azure Cloud Service tutorial to work 【发布时间】:2014-11-06 17:11:08 【问题描述】:

我一直在关注 Azure 电子邮件服务教程(又名 Azure 云服务教程)here。

按照step 2 中的说明,我下载了该项目,并能够在本地运行它。再次按照说明操作,然后我创建了一个 Azure 存储帐户和云服务,并将我的应用程序配置为使用它们。

但是,当我进入“测试配置为使用您的存储帐户的应用程序”时,当我尝试运行该应用程序时出现异常。在 WorkerRoleB 项目中的 OnStart 方法中引发了异常,在这一行:

blobContainer.CreateIfNotExists();

例外是StorageException:

无法连接到远程服务器

...内部异常是WebException:

远程服务器返回错误:(407) 需要代理身份验证。

我尝试将以下内容添加到 WorkerRoleB 的 .config 文件中:

<system.net>
  <defaultProxy enabled="true" useDefaultCredentials="true">
    <proxy usesystemdefault="True" bypassonlocal="True" />
  </defaultProxy>
</system.net>

...我在 WorkerRoleB 中不再出现异常,但随后在 WorkerRoleA 中出现了相同的异常(在类似的代码行上)。因此,我将相同的配置片段添加到 WorkerRoleA。再一次,这意味着我不再在 WorkerRoleA 中遇到异常。

但是,将配置片段添加到 WorkerRoleA 和 WorkerRoleB 后,我仍然无法运行该应用程序。当点击“运行”时,浏览器打开了一个没有显示内容的窗口(但“加载”指示器在旋转),最终在大约 30 秒后,我在 MvcWebRole 项目的 Global.asax 中遇到了异常。

在以下行引发了异常(看起来很熟悉?):

mailingListTable.CreateIfNotExists();

再一次,异常是StorageException

无法连接到远程服务器

...但这次内部异常是SocketException

连接尝试失败是因为连接方在一段时间后没有正确响应,或者连接建立失败是因为连接的主机没有响应168.61.61.16:443

我不知道现在该做什么。实际上,我什至不知道我对 WorkerRoleA 和 WorkerRoleB 项目所做的与代理相关的更改是否正确,因为尽管它们似乎使事情向前发展,但我实际上还没有看到项目运行。有什么建议吗?


更新:我发现一篇博客文章 here 似乎解释了为什么我看到“连接尝试失败”错误,即我可能位于只允许来自的流量的代理或防火墙后面经过身份验证的用户,而 Azure/IIS 将 AppPool(用于 WebRole)配置为在“NetworkService”下运行。

一些建议的解决方案看起来可行,但我无法让其中任何一个发挥作用:

    注释掉 ServiceDefinition.csdef 文件中的部分 - 当我尝试这样做时,项目将无法构建,因为 .csdef 文件不再遵守架构。 (无论如何,我的 .csdef 文件在该文件中似乎并没有任何值得注意的地方,所以我怀疑这是否会起作用)。 以编程方式更改 AppPool 的标识 - 我尝试使用提供的示例代码,但在尝试查找相关站点时失败(ServerManager.Sites[xxx] 返回null,导致NullReferenceException) .

【问题讨论】:

反对者:我如何改进我的问题? 【参考方案1】:

希望您尝试了here 中列出的所有解决方法

【讨论】:

是的,这与我在问题中列出的帖子相同。

以上是关于如何让 Azure 云服务教程正常工作的主要内容,如果未能解决你的问题,请参考以下文章

Azure 云服务内置自动缩放如何工作?

Azure 云服务工作者角色崩溃和不健康

Azure 云服务 PHP Pear 包

Azure 云服务定义问题

Azure如何面对新业务带来的挑战-云虚拟机

如何获取Azure的云服务的SSL证书