2013-02-07 71 views
1

我有一些縮略圖在Azure中被鎖定。我創建了一個共享訪問簽名:SharedAccessSignature和img HTML標籤

var policy = new SharedAccessPolicy 
{ 
    Permissions = SharedAccessPermissions.Read, 
    SharedAccessStartTime = DateTime.UtcNow, 
    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1) 
}; 
return blob.GetSharedAccessSignature(policy); 

然後將這些url推送到img標記中。

<img src="@Html.Raw(Model.ThumbnailUrl)"></img> 

然而,它們渲染真的不一致。有時候沒有人,有時候是一個人,有時候是所有人等......
有趣的是,如果你從「破碎」的圖像複製網址,並去它....你得到的圖像。

任何人都知道什麼可能會導致此問題?

+1

嘗試使用Chrome開發人員工具/網絡選項卡來確定圖像響應的實際外觀。看看輸出的html。 @ Html.Raw(Model.ThumbnailUrl)在任何時候都會生成有效的url嗎? –

+0

感謝網絡選項卡上的正面照片。我檢查過的每一個網址都很好,我可以將它粘貼到一個新標籤並獲得該文件。我已經考慮過它可能值得測試:DateTime.UtcNow.AddMinutes(-1),就在這種情況下) – Quibblesome

+1

做DateTime.UtcNow.AddMinutes(-x)是共享訪問簽名開始時間的推薦方法,因爲它照顧本地計算機上的時鐘偏移。一般來說,你應該把這個值保持在-15左右。 –

回答

0

由於拉夫Mantri建議我改變了代碼:

var policy = new SharedAccessPolicy 
{ 
    Permissions = SharedAccessPermissions.Read, 
    SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-15), 
    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(45) 
}; 

,一切都是現在可愛。看起來這是兩臺機器之間的一個小時間問題。