2015-11-07 76 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头(编辑行为>转发头>白名单>添加自定义:用户代理) ,但请注意,这将有效地禁用这些资源的缓存,因为用户代理字符串通常因用户而异。