我在Cloudfront Distribution方面遇到了一些问题。我在页面中使用了下拉列表和gridview。当dropdownlist相应更改时,我想更新gridview。当我尝试使用IP地址时,它在我的本地计算机以及我的服务器上工作得非常好。
我使用Amazon Cloudfront作为CDN,它不支持Cloudfront。
我可能会想在cloudfront Console上添加一些行为来解决这个问题,但我不确定。
任何帮助表示感谢。
答案 0 :(得分:1)
在黑暗中拍摄(正如迈克尔 - 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通过读取用户代理来确定浏览器功能 在a期间从浏览器传递到服务器的信息 请求。它比较从中收到的用户代理字符串 浏览器到存储在浏览器定义中的用户代理字符串 文件。这些浏览器定义文件包含有关的信息 各种用户代理的功能。当ASP.NET找到匹配项时 当前用户代理字符串与用户代理字符串之间的关系 浏览器定义文件,它加载相应的浏览器 HttpBrowserCapabilities对象的功能。属性 然后可以使用HttpBrowserCapabilities对象来确定 是否由用户代理表示的浏览器类型 支持脚本,样式,框架等。 基于这些 功能,页面上的控件呈现Web控件使用 适当的标记。
该页面包含有关如何覆盖此内容的一些详细信息,但它们似乎都不是理想的(即明确定位特定的浏览器/平台)。
另一个选项是将CloudFront配置为将User-Agent标头列入白名单,以便与您使用这些控件的页面匹配缓存行为(编辑行为>转发标题>白名单>添加自定义:用户-Agent ),但要注意这将有效地禁用这些资源的缓存,因为用户代理字符串通常因用户而异。