Почему мои сущности исчезают после развертывания? - PullRequest
2 голосов
/ 03 мая 2011

Я создал службу OData для нескольких наших организаций, и на моей машине разработчика (WinXP) все работает, как должно, вот что я получаю при доступе к службе:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<service xml:base="http://localhost:2332/ContactOData.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
  <workspace>
    <atom:title>Default</atom:title>
    <collection href="Client">
      <atom:title>Client</atom:title>
    </collection>
    <collection href="Vehicle">
      <atom:title>Vehicle</atom:title>
    </collection>
    <collection href="Contact">
      <atom:title>Contact</atom:title>
    </collection>
  </workspace>
</service>

Теперь, после того как я развернул эту службу на тестовом сервере (Win2K3), все мои сущности исчезли:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<service xml:base="http://dev-cont2011b/ContactOData/ContactOData.svc/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns="http://www.w3.org/2007/app">
  <workspace>
    <atom:title>Default</atom:title>
  </workspace>
</service>

Нет сообщений об ошибках, ничего в журнале событий. Моя строка соединений в порядке (я проверил это на простой странице test.aspx, которая извлекает что-то из базы данных и показывает на странице ==> это работает).

Когда я вручную ввожу URL для одной из сущностей (Клиент), я получаю следующее:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> 
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
  <code></code>
  <message xml:lang="nl-BE">Resource not found for the segment 'Client'.</message> 
</error>

.NET Framework 3.5 установлен на этом сервере. Я запустил все обновления.

Я бился головой об этом последние пару часов. Я не знаю, что еще я могу сделать или проверить.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Решение было установить это обновление:

Обновление служб данных ADO.NET для .NET Framework 3.5 SP1 для Windows Server 2003, Windows XP, Windows Vista и Windows Server 2008

По-видимому, это не включено в обновление Windows по умолчанию. Вы должны запустить его вручную.

Это было необходимо, потому что я изменил метод InitializeService по умолчанию, поэтому вместо IDataServiceConfiguration:

требуется DataServiceConfiguration
public static void InitializeService(DataServiceConfiguration config)
{
    config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
    config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2;
    config.SetEntitySetPageSize("*", 20);
}

Это необходимо, если вы хотите включить подкачку на стороне сервера (SetEntitySetPageSize) (среди прочих).

0 голосов
/ 04 мая 2011

Новая попытка:

Это проблема RESX

<message xml:lang="nl-BE">Resource not found for the segment 'Client'.</message> 

Он пытается найти перевод nl-BE для имени Client.

...