Search code examples
asp.netopeniddotnetopenauthgoogle-openid

Google OpenId: No OpenID endpoint found (intermittent)


Usually using the Google OpenId works fine, thousands of times a day, then it will start intermittently going wrong and timing out for an hours or so (some requests will validate but not all). Repeated validation will eventually work.

Error messages are:

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

Sequence contains no elements

Adding in log4net yields:

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

And

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

Any ideas?


Solution

  • It sounds like you need to fix your network latency. It seems highly unlikely that Google would be the bottleneck here.

    You may also want to increase the HTTP timeouts on your end to reduce the failure rate. The full set of options is available here. Specifically you're probably looking for:

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

    Check out the configurations link to see the context of where this goes.