2015-11-07 68 views
0

我在使用Cloudfront發行版時遇到了一些問題。我在頁面中使用了一個下拉列表和一個gridview。當dropdownlist相應地改變時,我想更新gridview。當我嘗試使用IP地址時,它在本地機器上以及在我的服務器上工作得很好。更新面板不在雲端後面工作

我正在使用Amazon Cloudfront作爲CDN,它不在Cloudfront後面工作。

我可能會想在雲端控制檯上添加一些行爲來解決這個問題,但我不確定。

任何幫助表示讚賞。

+0

你需要更清楚一點,只是說它「不工作」。就瀏覽器的開發人員工具而言,您看到了什麼?就http響應頭而言?在你的服務器日誌中?在CloudFront日誌中? –

回答

1

在這裏黑暗中拍攝(如Michael - sqlbot說 - 你真的需要提供更多信息)。

GridView是一個ASP.NET Web控件嗎?如果是這樣,則可能是ASP.NET不識別CloudFront用戶代理字符串:Amazon CloudFront(與Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US相反,這是一個用戶代理字符串的示例,您通常會看到是否向用戶代理字符串發出了直接請求您的網站),因此沒有呈現相應的JavaScript(我已經看到了在這些情況下省略了__doPostBack的JavaScript)

https://msdn.microsoft.com/en-us/library/x3k2ssx2.aspx

ASP.NET通過讀取用戶代理 決定了瀏覽器功能在 請求期間從瀏覽器傳遞到服務器的信息。它將從 瀏覽器收到的用戶代理字符串與存儲在瀏覽器定義 文件中的用戶代理字符串進行比較。這些瀏覽器定義文件包含有關各種用戶代理的功能的信息。當ASP.NET在 瀏覽器定義文件中的當前用戶代理字符串和用戶代理字符串之間找到 匹配項時,它將相應的瀏覽器 功能加載到HttpBrowserCapabilities對象中。然後可以使用HttpBrowserCapabilities對象的屬性 來確定 由用戶代理 表示的瀏覽器類型是否支持腳本,樣式,框架等。 基於這些 功能,頁面上的控件使用 適當的標記呈現Web控件。

該頁面包含一些關於如何覆蓋此內容的詳細信息,但它們都不太理想(即明確針對特定的瀏覽器/平臺)。

另一種選擇是配置CloudFront的的許可清單,你正在使用這些控件相匹配的頁面高速緩存行爲的User-Agent頭(編輯行爲>轉發頭>白名單>添加自定義:用戶代理) ,但請注意,這將有效地禁用這些資源的緩存,因爲用戶代理字符串通常因用戶而異。