2010-11-22 16 views
1

J'ai un service OData WCF dans mon projet ASP.NET que j'utilise pour lire et mettre à jour une base de données SQL-Server.Impossible d'accéder au service OData WCF avec la clé DateTime en raison des deux-points

Pour l'une des tables, la clé primaire est un champ DateTime. Lorsque vous essayez d'accéder à des lignes spécifiques via le service OData, l'URI ressemble à ceci: "http: // serveur/odataservice/stats (datetime'2009-12-12T00: 00: 00 ')".

Lorsque vous tentez de mettre à jour cette table via le service ou d'y accéder, elle ne génère qu'une erreur. L'erreur est envoyée avant que le service WCF ne soit contacté, et autant que j'ai pu le trouver parce que IIS n'autorise pas les deux-points dans les uri, seulement dans les requêtes, pour des raisons de sécurité (quelque chose à propos de NTFS). L'erreur IIS réelle est "Erreur HTTP 500.19 - Erreur serveur interne Impossible d'accéder à la page demandée car les données de configuration associées à la page ne sont pas valides", mais cela semble un peu trompeur.

Si je supprime les deux-points et navigue jusqu'à "http: // serveur/odataservice/stats (datetime'2009-12-12 ')" cela fonctionne comme prévu. Cependant, je ne sais pas comment je suis supposé être capable de le faire dans le client C# qui est lié au service OData. Il se sent aussi très hacky pour éditer l'uri sur le client ou sur le serveur à la volée, je préférerais avoir une bonne solution. J'utilise un IIS hébergé, donc je ne peux pas, pour autant que je sache, modifier sa configuration pour autoriser les deux-points, même si cela était possible.

Répondre

1

Si vous avez le contrôle de l'application de service OData, puis this peut être utile (trouvé via la section .NET Framework à www.odata.org/developers/articles)

+0

Je l'ai essayé, mais encore n'accepterait pas le chemin autant que je peux le dire. Il se peut que l'IIS hébergé n'autorise pas ce changement de configuration. – Johan