asp.net - Google OpenId : No OpenID endpoint found (intermittent)

标签 asp.net openid dotnetopenauth google-openid

通常,每天使用Google OpenId可以工作数千次,然后间歇性地出错并超时约一个小时(某些请求可以验证,但不是全部都可以)。重复验证最终将起作用。

错误消息是:

Event code: 200000 
Event message: No OpenID endpoint found. : https://www.google.com/accounts/o8/id 

Sequence contains no elements

添加log4net会产生:
DotNetOpenAuth.Yadis:
Error while performing discovery on: "https://www.google.com/accounts/o8/id": 
DotNetOpenAuth.Messaging.ProtocolException:
 Error occurred while sending a direct message or getting the response. 
 ---> System.Net.WebException: The operation has timed out     
  at System.Net.HttpWebRequest.GetResponse()    
  at DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse
     (HttpWebRequest request, DirectWebRequestOptions options) 
     in  c:\...\Dot...Core\Messaging\StandardWebRequestHandler.cs:line 127    
 --- End of inner exception stack trace ---     
  at DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse
     (HttpWebRequest request, DirectWebRequestOptions options) 
     in c:\...\Dot...Core\Messaging\StandardWebRequestHandler.cs:line 175
  at DotNetOpenAuth.Messaging.UntrustedWebRequestHandler.GetResponse
     (HttpWebRequest request, DirectWebRequestOptions options)
     in c:\...\Dot...Core\Messaging\UntrustedWebRequestHandler.cs:line 250
  at DotNetOpenAuth.Yadis.Yadis.Request
     (IDirectWebRequestHandler requestHandler,
       Uri uri, Boolean requireSsl, String[] acceptTypes) 
     in c:\...\Dot...OpenId\Yadis\Yadis.cs:line 172
  at DotNetOpenAuth.Yadis.Yadis.Discover
     (IDirectWebRequestHandler requestHandler, UriIdentifier uri, Boolean requireSsl)
     in c:\...\DotNetOpenAuth.OpenId\Yadis\Yadis.cs:line 63
  at DotNetOpenAuth.OpenId.UriDiscoveryService.Discover
     (Identifier identifier, IDirectWebRequestHandler requestHandler, 
           Boolean& abortDiscoveryChain) 
     in c:\...\DotNet...OpenId\OpenId\UriDiscoveryService.cs:line 51
  at DotNetOpenAuth.OpenId.IdentifierDiscoveryServices.Discover
     (Identifier identifier) 
     in c:\...\Dot...OpenId\OpenId\IdentifierDiscoveryServices.cs:line 58
  at DotNetOpenAuth.OpenId.RelyingParty.AuthenticationRequest.Create
     (Identifier userSuppliedIdentifier, OpenIdRelyingParty relyingParty,
       Realm realm, Uri returnToUrl, Boolean createNewAssociationsAsNeeded) 
     in ...OpenId.RelyingParty\OpenId\RelyingParty\AuthenticationRequest.cs:line 364


DotNetOpenAuth.Http WebException: 
 Timeout from https://www.google.com/accounts/o8/id, no response available.

有任何想法吗?

最佳答案

听起来您需要修复网络延迟。 Google极不可能成为这里的瓶颈。

您可能还想增加HTTP超时,以降低故障率。完整的选项集可用here。具体来说,您可能正在寻找:

<untrustedWebRequest
            timeout="00:00:10"
            readWriteTimeout="00:00:01.500" />

查看配置链接以查看其运行环境。

关于asp.net - Google OpenId : No OpenID endpoint found (intermittent),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062322/

相关文章:

c# - 如何使用服务帐户通过 .NET C# 访问 Google Analytics API V3?

openid - 谷歌是否为本地主机生成新的 openid 声明标识符?

gmail - 通过 DotNetOpenId 检索 GMail 数据

c# - 从 C# 中的其他资源引用嵌入式资源

asp.net - 我想使用 ASP.Net/C# 从 Internet 访问我的本地主机网站。有任何想法吗?

c# - 预 ASP.NET Core MVC 应用程序中的 Razor 标记帮助程序

login - 内部注册与 OpenID 与 Google friend 群与 Facebook 连接与(等)

c# - Identity Server 4 for Nativescript 应用程序应使用哪种流程以及它的安全性如何?

c# - Specflow - 带有数据表的场景轮廓

asp.net-mvc - 在具有覆盖身份验证方法的 MVC3 应用程序中使用 OpenID/OpenAuth