2014-10-27 43 views
4

我來自俄羅斯,和1,5天前(at 2AM,10月26日)我們的時區(ok,偏移我們的時區)發生了變化 - 從UTC + 4變爲UTC + 3。請不要爲什麼現在問 - 這是出*******電子政務:(但它改變錯Azure網站服務器時區數據

我的主場拿下8.1機器自動更新

但是,只有一個我天青的。(!)資源更新一個Cloud Service更新,而另一個Cloud Service和4個網站未更新 - 它們仍然在UTC + 4偏移量。 TimeZoneInfo data on them。

我在請求

var tz = TimeZoneInfo.FindSystemTimeZoneById("Russian Standard Time") 

這個時區仍然是

(UTC + 04:00)莫斯科,聖彼得堡,伏爾加格勒

,而我家的機器是

(UTC + 03:00)莫斯科,聖彼得堡,伏爾加格勒(RTZ 2)

AFAIK,這個依賴ds在服務器上的系統更新 - 新的時區數據必須在實際發生任何時間更改之前到達。但爲什麼服務器不更新?

我的一個CloudService現在正常工作,顯示正確的時區信息(無法顯示它),所以至少有一臺服務器正確更新,而其他服務器則不正確。

我做小網站來測試這一點:http://timezonetestrussia.azurewebsites.net/(來源:https://github.com/justdmitry/AzureTimeZoneTest

它顯示TimeZoneInfo.Local信息,並從「俄羅斯標準時間」。在這一刻,它顯示了這個在Azure中:

Id 
    Russian Standard Time 
DisplayName 
    (UTC+04:00) Moscow, St. Petersburg, Volgograd 
StandardName 
    Russian Standard Time 
DaylightName 
    Russian Daylight Time 
BaseUtcOffset 
    04:00:00 
SupportsDaylightSavingTime 
    True 
DateTimeOffset.UtcNow 
    10/27/2014 2:37:58 PM +00:00 
TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tz) 
    10/27/2014 6:37:58 PM +04:00 

雖然我的本地機器上顯示:

Id 
    Russian Standard Time 
DisplayName 
    (UTC+03:00) Moscow, St. Petersburg, Volgograd (RTZ 2) 
StandardName 
    Russia TZ 2 Standard Time 
DaylightName 
    Russia TZ 2 Daylight Time 
BaseUtcOffset 
    03:00:00 
SupportsDaylightSavingTime 
    True 
DateTimeOffset.UtcNow 
    27.10.2014 14:33:50 +00:00 
TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tz) 
    27.10.2014 17:33:50 +03:00 
+1

我有這個假設:「正確」的時區需要安裝一些操作系統更新。查看訪客操作系統更新提要http://sxp.microsoft.com/feeds/3.0/msdntn/WindowsAzureOSUpdates - 他們無法在幾個月內向所有用戶發佈新操作系統。很可能您的「正常工作」服務會更新操作系統,而其他服務尚未更新操作系統。您可以使用Management API http://msdn.microsoft.com/en-us/library/azure/ee460804.aspx *獲取部署*調用來驗證此情況。 – sharptooth 2014-10-28 06:39:30

+0

昨晚我得到了同樣的想法。通過VS檢查 - 我的「正確的」服務有WA-GUEST-OS-3.20_201410-01,而「不正確的」有WA-GUEST-OS-3.19_201409-01 請給出你的評論一個答案,所以我可以接受它。 – Dmitry 2014-10-28 08:45:11

+0

與新明斯克UTC + 3時區相同的問題。有趣的是,O365(SharePoint Online)已更新爲最新時區,但Azure虛擬機未更新... – Ilya 2014-11-27 08:37:17

回答

0

最可能的原因是不同的服務運行在不同的Guest OS「版本」上。您可能啓用了自動訪客操作系統更新(osVersion="*"),這意味着Azure可自由更新客戶操作系統。具有相同系列的不同客戶操作系統版本包含不同的更新集。類似時區調整的規則通常也使用更新進行分發。

查看訪客操作系統更新源http://sxp.microsoft.com/feeds/3.0/msdntn/WindowsAzureOSUpdates - 他們無法在幾個月內向所有用戶發佈新操作系統。這個過程開始多次,他們更新了一些用戶,然後停止了這個過程。很可能您的「正常工作」服務會更新操作系統,而其他服務尚未更新操作系統。您可以使用Management API http://msdn.microsoft.com/en-us/library/azure/ee460804.aspx獲取部署調用來驗證此情況。

+0

對於那些(像我一樣)對API調用不太友好的用戶 - 客戶操作系統版本顯示在Visual Studio「服務器資源管理器」窗口中,位於Azure/Cloud Services/<服務名稱> /''/'' - 在上下文菜單中選擇Properties。 – Dmitry 2014-10-28 12:19:14

0

我研究,如果天青可以用新的時區進行更新,但我不」相信這是直接可能的。或者說,由於您無法訪問Azure網站運行的操作系統,因此您無法自行應用the updates。您可能必須等到下一個主要的Azure來賓操作系統更新。如果我不知道,我會更新這篇文章。

如果你可以重做你的程序,你可以考慮使用Noda Time。它有自己的時區數據,來自IANA time zone database。一定要使用updated .NZD file,因爲俄羅斯的變化是covered in IANA 2014f or greater