2010-11-22 62 views
1

我的ASP.NET項目中有一個OData WCF服務,用於讀取和更新SQL Server數據庫。因爲冒號而無法使用DateTime密鑰訪問WCF OData服務

對於其中一個表,主鍵是DateTime字段。當試圖通過OData服務訪問特定行時,uri如下所示:「http:// server/odataservice/stats(datetime'2009-12-12T00:00:00')」。

當試圖通過服務更新此表或瀏覽它時,它只給出錯誤。在WCF服務被聯繫之前發送錯誤,並且據我所能找到它是因爲IIS不允許冒號在uri中,只是在查詢中,出於安全原因(關於NTFS)。

實際的IIS錯誤是「HTTP錯誤500.19 - 內部服務器錯誤 請求的頁面無法訪問,因爲該頁面的相關配置數據無效」,但它似乎有點誤導。

如果我刪除冒號並瀏覽到「http:// server/odataservice/stats(datetime'2009-12-12')」它按預期工作。然而,我很無能,因爲我應該可以通過綁定到OData服務的C#客戶端來完成此操作。在客戶端或服務器上編輯uri也很不方便,我寧願有一個合適的解決方案。

我使用託管的IIS,所以我不能盡我所知地改變它的配置,以允許冒號,即使這是可能的。

回答

1

如果你有OData服務應用程序的控制,那麼this可能會有所幫助

+0

我想它(通過在www.odata.org/developers/articles .NET框架部分中找到),但它仍然據我所知,我不會接受這條道路。它可能是託管IIS不允許此配置更改。 – Johan 2010-12-27 10:32:25