Mar 18, 2011 at 3:41 AM
Edited Mar 18, 2011 at 3:55 AM
In order to call GetPersonInfo, both the person and the application must be authenticated.
The application uses its private key to authenticate. In return, HealthVault issues an authentication token. In the request above, it is used in the element /request/header/auth-session/auth-token. That token authenticates the application
and is cached in memory per-process. When you restarted your server, the authenticated session token cached in memory was lost. The new process reauthenticated and continued on with a good authentication token.
Users authenticate by signing into HealthVault. A user-auth-token is returned via some HTTP redirects. Both tokens combined in a request allow access to user data in HealthVault. The user token is located in the above request at /request/header/auth-session/user-auth-token.
Your application token will expire every 24 hours (soon to be less but you can't predict it). When it expires error 65 will be returned. When that happens the SDK intercepts that code (in DefaultSendStrategy), reauthenticates the application,
and resubmits the request. Well...the bug noted above came into the trunk after 1.1 was released and before 1.2 was released. You are using (unfortunately) a build from the trunk containing the bug.
You can fix the bug in the file DefaultResponseStrategy if you look at the diff between your version and the version in 1.2. Or you can build version 1.2