Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 2
  • 140

W momencie przejścia z polskiej wersji systemu Windows Server 2012 na wersję angielską usługa WCF zwraca obiekty typu DateTime w formacie EN-US. Czy istnieje możliwość ustawienia domyślnego formatu czasu dla danej usługi (web sita) hostowanej na IIS? 

Wookie
  • Zapytał
  • @ Wookie | 03.07.2014
    • 8
    • 1
    • 7

Odpowiedź (1)

  • 0

Przy serializacji danych typu DateTime przez WCF używany jest format zdefiniowany dla typu dateTime ze specyfikacji XML Schema (yyyy-MM-ddThh:mm:ss), więc tutaj żadne ustawienia regionalne serwera nie mają znaczenia. Nie ma czegoś takiego jak ustawienie domyślnego formatu daty dla usługi.

Trudno mi zdiagnozować problem tylko na podstawie informacji z pytania. Poproszę wiec o kod jednego z takich serwisów (wystarczy 1 metoda, w której jest DateTime) i sekcja <system.serviceModel> z pliku web.config.

Być może natrafiłeś na błąd jakiejś konkretnej wersji Frameworka (ale to mało prawdopodobne). Znacznie bardziej prawdopodobne jest, że używasz z w metodach serwisu jawnego wywołania funkcji ToString dla pól DateTime i do serializacji idzie już sformatowany datetime jako string. I to by się zgadzało. ToString używa ustawień regionalnych wątku, w którym działa, a te domyślnie są pobierane z systemu. Można to jednak zmienić.

 

  • Odpowiedział
  • @ | 15.07.2014
  • TRENER ALTKOM AKADEMII