小编Edd*_*fen的帖子

Cloudfront自定义源分发返回502"ERROR无法满足请求." 对于某些网址

我们有一个Cloudfront发行版,其定制来源已经运行了很长时间,为我们的一个站点提供静态资产.就在今天早上,我们注意到我们的徽标显示为断开链接.

经过进一步调查,Cloudfront将返回一条我之前从未见过的有关URL的奇怪错误消息:

错误

请求无法满足.



由cloudfront生成(CloudFront)

此分发中的其他几个Cloudfront URL返回相同的错误,但其他(同样,来自同一分发)的工作正常.我没有看到什么有效,哪些无效的模式.

其他一些数据点:

  • 产地的URL工作得很好.据我所知,最近没有服务中断.
  • 我特意使徽标URL无效,无效.
  • 我已经使分发的根URL无效,无效.

知道这里发生了什么吗?我以前从未见过Cloudfront这样做过.

更新:

以下是Cloudfront的逐字HTTP响应:

$ http GET https://d2yu7foswg1yra.cloudfront.net/static/img/crossway_logo.png
HTTP/1.1 502 Bad Gateway
Age: 213
Connection: keep-alive
Content-Length: 472
Content-Type: text/html
Date: Wed, 18 Dec 2013 17:57:46 GMT
Server: CloudFront
Via: 1.1 f319e8962c0268d31d3828d4b9d41f98.cloudfront.net (CloudFront)
X-Amz-Cf-Id: H_HGBG3sTOqEomHzHubi8ruLbGXe2MRyVhGBn4apM0y_LjQa_9W2Jg==
X-Cache: Error from cloudfront

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The request could not be satisfied.</H2> …
Run Code Online (Sandbox Code Playgroud)

ssl cdn amazon-cloudfront

64
推荐指数
5
解决办法
9万
查看次数

如何暂时禁用愤怒震动打开反应原生的开发菜单?

我正在开发一个针对Android的react-native应用程序.我最近添加了条形码扫描组件.每当扫描仪读取条形码时,相机会发出微妙的咔嗒声.看来这次点击足以触发打开开发人员菜单所需的"摇动".

有没有办法可以通过编程方式禁用此快捷方式?我想在条形码扫描仪运行时禁用快捷方式,然后再次启用它.

react-native

11
推荐指数
1
解决办法
966
查看次数

重写LINQ表达式查询以启用缓存SQL执行计划

在阅读有关实体框架性能的文章时,我发现了这条信息:

其次,问题[SQL Server不会重用执行计划]首先发生因为(由于实现细节)将int传递给Skip()和Take()方法,Entity Framework无法查看是否它们传递的绝对值如Take(100)或变量如Take(resultsPerPage),因此它不知道该值是否应该参数化.

建议的解决方案是改变这种代码风格:

var schools = db.Schools
    .OrderBy(s => s.PostalZipCode)
    .Skip(model.Page * model.ResultsPerPage)
    .Take(model.ResultsPerPage)
    .ToList();
Run Code Online (Sandbox Code Playgroud)

在这种风格:

int resultsToSkip = model.Page * model.ResultsPerPage;
var schools = db.Schools
    .OrderBy(s => s.PostalZipCode)
    .Skip(() => resultsToSkip) //must pre-calculate this value
    .Take(() => model.ResultsPerPage)
    .ToList();
Run Code Online (Sandbox Code Playgroud)

这允许实体框架知道这些是变量,并且生成的SQL应该被参数化,这反过来允许重用执行计划.

我们的应用程序中有一些代码以相同的方式使用变量,但我们必须在运行时构建Expression,因为事先不知道类型.

以下是它过去的样子:

var convertedId = typeof(T).GetConvertedIdValue(id);
var prop = GetIdProperty(typeof(T));

var itemParameter = Expression.Parameter(typeof(T), "item");
var whereExpression = Expression.Lambda<Func<T, bool>>
    (
    Expression.Equal(
        Expression.Property(
            itemParameter,
            prop.Name
            ),
        Expression.Constant(convertedId)
        ),
    new[] { itemParameter }
    ); …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server entity-framework

8
推荐指数
1
解决办法
340
查看次数

从IIS获取ERR_CONNECTION_RESET,日志中没有信息

ERR_CONNECTION_RESET当我的ASP.NET服务器尝试以错误答复时,我正在使用Chrome。

通常,我可以通过在日志文件中找到有关服务器错误的信息,但是那里什么也没有。

在响应上运行调试器似乎表明一切正常,除了最后,Chrome告诉我连接已重置。

这是处理异常处理的代码:

    try
    {
       ...
    }
    catch (ArgumentException e)
    {
        Response.StatusCode = 400;
        Response.StatusDescription = e.Message;
        return new ContentResult {Content = "" };
    }
Run Code Online (Sandbox Code Playgroud)

Chrome net::ERR_CONNECTION_RESET在控制台中显示了我。

使用Fiddler,我收到错误消息 [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.

如果我在IIS中启用了失败的请求跟踪,然后打开生成的xml文件

    GENERAL_FLUSH_RESPONSE_END 


    BytesSent
    0 

    ErrorCode
    The parameter is incorrect.
     (0x80070057) 
Run Code Online (Sandbox Code Playgroud)

我花了几个小时尝试调试它,但运气不佳。

c# asp.net google-chrome iis-10

3
推荐指数
2
解决办法
5450
查看次数