【问题标题】:"No OpenID endpoint found" on Azure WebsiteAzure 网站上的“未找到 OpenID 端点”
【发布时间】:2012-06-10 14:18:37
【问题描述】:

我对作为 Azure 网站运行的 MVC 3 应用程序有一个奇怪的问题。过去我在使用 Azure 时遇到过问题,但新的网站概念几乎可以完美运行,除了以下几点:

DotNetOpenAuth.Messaging.ProtocolException: No OpenID endpoint found.

这仅发生在 Google 上,仅在 Azure 上。在本地运行它工作正常,在 AppHarbor 上运行它工作正常,但在 Azure 上,每次尝试使用 Google 进行 OpenID 登录都会由于该异常而导致服务器错误(使用 Airbrake 跟踪)。

自己看看,尝试在my website 上使用 Google 登录,如果您立即收到服务器错误页面,则表示 DNOA 正在崩溃。所有其他登录方法都可以正常工作,包括也是 OpenID 的 Yahoo 和 AOL。

P.S.:不过不要尝试太多次,AirBrake 会很乐意向我的电子邮件地址发送垃圾邮件:

【问题讨论】:

  • 您能否尝试按照此处所述将 OAuth 日志记录添加到您的应用程序中,以获取更多信息为什么它在 Windows Azure 上失败dotnetopenauth.net/developers/help/…
  • @AvkashChauhan 我尝试使用 Glimpse 但 DNOA 选项卡处于非活动状态,这表明没有记录任何内容。
  • @AndrewArnott 我尝试直接使用 log4net,显然没有任何记录。
  • 我对 DotNetOpenAuth 不熟悉。但我建议您使用 Windows Azure ACS。它还支持 Google 作为身份提供者,并且在 Windows Azure 中运行良好。
  • @MingXu-MSFT,这不需要 1) 使用云服务而不是网站,2) 重写整个身份验证代码,3) 将自己锁定到 Azure。这甚至会在本地运行吗?模拟器不是......那么好,部署到云服务真的很慢,等等。不,谢谢。

标签: azure dotnetopenauth azure-web-app-service


【解决方案1】:

尝试将此代码添加到您的网站之前调用OpenIdRelyingParty.CreateRequest

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

在某些 Azure 配置中,这已被证明可以解决问题。

【讨论】:

  • 谢谢!这对我来说非常有效。你有更深入的解释为什么这是必要的吗?
  • 似乎那些使用新的 Azure 预览版 Web 托管服务的人正在一个新的环境/沙盒中运行他们的网站,其中默认的 SSL 设置是非标准的。在向 Google 发送 HTTP 请求时,(显然)使用了 SSL v3,并且无论是什么默认配置,都无法在没有一点帮助的情况下适应它。 Azure 人员正在解决这个问题,以便它在未来默认运行。
  • 这个答案解决了访问 Google API 的问题。但是,即使实施了这种解决方法,我在访问 Exchange Web 服务时仍然遇到同样的问题。
【解决方案2】:

我在 global.asax 中有这个功能:

AreaRegistration.RegisterAllAreas();

删除此行后,一切正常。

我在我的应用中添加了一些区域,这个功能是 VS2012 自动添加的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多