我一直关注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;下运行。
一些建议的解决方案看起来很可行,但我无法让它们中的任何一个起作用:
ServerManager.Sites[xxx]
返回null
,导致NullReferenceException
)。