如何使Azure Cloud Service教程工作

时间:2014-09-12 13:40:19

标签: proxy azure-storage azure-web-roles azure-worker-roles

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

按照step 2中的说明,我下载了项目,并能够在本地运行它。再次按照说明操作,我创建了Azure存储帐户和Cloud Service,并配置了我的应用程序以使用它们。

但是,当我进入"测试配置为使用存储帐户的应用程序时,我尝试运行应用程序时遇到异常。在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后,我仍然无法运行该应用程序。当点击&#34;运行&#34;时,浏览器打开了一个没有显示内容的窗口(但是&#34;加载&#34;指示器旋转),并且最终在大约30秒后,我得到了一个例外。 MvcWebRole项目的Global.asax。

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

mailingListTable.CreateIfNotExists();

异常是StorageException

  

无法连接到远程服务器

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

  

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

我现在不知道该怎么做。我甚至不知道我对WorkerRoleA和WorkerRoleB项目所做的与代理相关的更改是否正确,因为虽然它们似乎推动了事情发展,但我实际上并没有看到项目运行然而。有什么建议吗?


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

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

  1. 注释掉ServiceDefinition.csdef文件中的部分 - 当我尝试执行此操作时,项目将无法构建,因为.csdef文件不再遵循架构。 (无论如何,我的.csdef文件在该文件中似乎没有任何注意事项,所以我怀疑这无论如何都会有效。)
  2. 以编程方式更改AppPool的身份 - 我尝试使用提供的示例代码,但在尝试查找相关网站时失败(ServerManager.Sites[xxx]返回null,导致NullReferenceException)。

1 个答案:

答案 0 :(得分:0)

我希望您尝试了here

中列出的所有变通办法