Не удается получить доступ к службе ODF WCF с ключом DateTime из-за двоеточия - PullRequest
1 голос
/ 22 ноября 2010

В моем проекте ASP.NET есть служба OData WCF, которую я использую для чтения и обновления базы данных SQL-Server.

Для одной из таблиц первичным ключом является поле 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')", он работает, как и ожидалось. Однако я не знаю, как я могу это сделать с помощью клиента C #, который связан со службой OData. также чувствует себя очень взволнованным, чтобы отредактировать URI на клиенте или на сервере на лету, я бы предпочел правильное решение.

Я использую размещенный IIS, поэтому я не могу, насколько я знаю, изменить его конфигурацию, чтобы разрешить двоеточия, даже если это было возможно.

1 Ответ

1 голос
/ 07 декабря 2010

Если у вас есть контроль над приложением-службой OData, может пригодиться (можно найти в разделе .NET Framework по адресу www.odata.org/developers/articles)

.
...