J'ai un service WCF qui reçoit des enregistrements avec des valeurs de date et les enregistre dans une base de données Azure SQL, en utilisant Entity Framework 3.5, SP1. En l'exécutant localement, les enregistrements sont sauvegardés dans la base de données, tout va bien.
Cependant, mon hébergement IIS se trouve dans un autre fuseau horaire. Lorsque j'y télécharge le site et que j'appelle le même service (avec exactement la même chaîne de connexion, à la base de données Azure SQL), les enregistrements sont toujours sauvegardés, mais l'heure a reculé de 5 heures.
J'ai vérifié Fiddler, pour voir les données qui sortent, et c'est à mon heure locale. J'ai utilisé le même service dans le cadre d'un hébergement Azure, et cela a également fonctionné. J'ai sauvegardé les mêmes données vers un autre service WCF sur le même hôte avec Linq2SQL, et cela fonctionne bien.
La seule différence est alors Entity Framework - je suppose que mon information sur le fuseau horaire (GMT) est envoyée avec la date, et que lorsque le serveur reçoit l'heure de la côte Est, il la convertit à l'heure locale, 5 heures plus tôt.
D'une certaine manière, c'est exact, car à l'heure actuelle (13:48), il est 5 heures plus tôt - 08:48, mais ce n'est pas ce que je veux qu'il enregistre dans la base de données, je veux qu'il enregistre 13:48. Je veux qu'il enregistre 13:48, comme je l'ai demandé, pour que cela ait un sens lorsque je l'interroge.
C'est probablement très simple, et tout le monde connaît la réponse, mais je suis un peu perplexe. J'apprécierais vraiment que quelqu'un m'oriente dans la bonne direction.
de nombreux remerciements
Toby