小编zen*_*con的帖子

DevTools中不再显示Chrome 59+ websocket框架

自从我在Mac OS El Capitan上从Chrome 58 => 59升级后,当我使用Dev Tools网络检查器查看WebSocket框架时,框架不再可见.我们构建了一个大量使用WS的应用程序,所以我非常依赖这个功能.

我想也许这可能是我们在应用程序中改变的 - 编码或协议可能导致它不显示,所以我在这里尝试了这个简单的测试:https://websocket.org/echo.html

  1. 打开DevTools
  2. 转到https://websocket.org/echo.html
  3. 转到"网络"选项卡,在WS上过滤,转到"帧"选项卡
  4. 单击echo in echo app,然后单击Send Message

这导致DevTools中没有显示任何框架,但套接字消息与应用程序一起正常工作.我问过其他几个人,其中一些人没有这个问题.

我想知道我是否有一个导致此问题的扩展,或者我是否有其他可能阻止帧显示的神秘设置?

在此输入图像描述

google-chrome websocket google-chrome-devtools

52
推荐指数
3
解决办法
8111
查看次数

Silverlight RIA服务 - 如何最好地处理客户端身份验证会话超时?

我使用Silverlight4,RIA Services构建了一个应用程序,并且我使用ASP.NET Membership进行身份验证/授权.

我的web.config有这个:

<system.web>
 <sessionState timeout="20"/>
 <authentication mode="Forms">
  <forms name="_ASPXAUTH" timeout="20"/>
 </authentication>
Run Code Online (Sandbox Code Playgroud)

我已经阅读了许多关于如何在客户端处理auth /会话超时的策略.也就是说:如果客户端空闲x分钟(此处为20),然后他们使用触发RIA/WCF调用的UI执行某些操作,我想要捕获该事件并进行适当处理(例如,将它们带回到登录屏幕) - 简而言之:我需要一种方法来区分真正的服务器端DomainException与auth失败,因为会话超时.

AFAIK:没有可以确定此问题的类型异常或属性.我能够确定这一点的唯一方法 - 这似乎是一个黑客攻击:是检查错误的消息字符串并查找"拒绝访问"或"拒绝"之类的内容.例如:这样的事情:

if (ex.Message.Contains("denied"))
  // this is probably an auth failure b/c of a session timeout
Run Code Online (Sandbox Code Playgroud)

所以,这就是我目前所做的,如果我使用VS2010的内置服务器运行和调试,或者我在localhost IIS中运行,它就可以工作.如果我将超时设置为1分钟,登录,等待超过一分钟并触发另一个呼叫,我在异常上断点并输入上面的if代码块,一切都很好.

然后我将应用程序部署到远程IIS7服务器,我尝试相同的测试,它不起作用.所以,我添加了日志跟踪,这是发生异常的事件:

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
 <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
  <EventID>131076</EventID>
  <Type>3</Type>
  <SubType Name="Error">0</SubType>
  <Level>2</Level>
  <TimeCreated SystemTime="2011-10-30T22:13:54.6425781Z" />
  <Source Name="System.ServiceModel" />
  <Correlation ActivityID="{20c26991-372f-430f-913b-1b72a261863d}" />
  <Execution ProcessName="w3wp" ProcessID="4316" ThreadID="24" />
  <Channel />
  <Computer>TESTPROD-HOST</Computer>
 </System>
 <ApplicationData>
  <TraceData>
   <DataItem>
    <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error">
     <TraceIdentifier>http://msdn.microsoft.com/en-US/library/System.ServiceModel.Diagnostics.TraceHandledException.aspx</TraceIdentifier>
     <Description>Handling an exception.</Description>
     <AppDomain>/LM/W3SVC/1/ROOT/sla-2-129644844652558594</AppDomain>
     <Exception>
      <ExceptionType>System.ServiceModel.FaultException`1[[System.ServiceModel.DomainServices.Hosting.DomainServiceFault, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, …
Run Code Online (Sandbox Code Playgroud)

silverlight asp.net-membership silverlight-4.0 wcf-ria-services

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

车辆识别号码(VIN)设计

我为不同的OEM 设计了一些车辆识别码(VIN)解码器.关于VIN编号的事情......尽管有些标准化,但每个OEM都可以重载字符位置代码并对它们进行不同的处理,添加"额外"元数据(即指向VIN编号之外的更多数据的星号)等等.尽管如此所有这些,我已经能够构建几个不同的OEM VIN解码器,现在我正在尝试构建一个GM VIN解码器,它让我头疼.

问题的关键在于,GM根据车辆或汽车的不同,对车辆属性部分(位置4,5,6,7)进行不同的处理.这是细分:

通用汽车乘用车VIN故障

通用汽车VIN

通用卡车VIN故障

通用卡车VIN

通常我所做的是设计我自己的原始ETL过程以将数据导入RDMBS - 每个表大致与主要的VIN细分相关联.例如,将有一个WMI表,EngineType表,ModelYear表,AssemblyPlant表等.然后我构建一个View,它连接一些上下文数据,这些数据可能或不能直接从VIN编号本身的字符代码中收集(例如,一些车辆类型仅具有某些车辆发动机).

查找VIN只是查询VIEW,VIN字符串的每个主要字符代码位置细分.例如,1FAFP53UX4A162757的示例VIN 在不同OEM的VIN结构中如下所示:

| WMI | Restraint | LineSeriesBody | Engine | CheckDigit | Year | Plant | Seq   |
| 123 | 4         | 567            | 8      | 9          | 10   | 11    | 12-17 |
---------------------------------------------------------------------------------
| 1FA | F         | P53            | U      | X          | 4    | A     | ...   |

通用汽车已经对此进行了调整......取决于它是汽车还是卡车,角色代码位置意味着不同的东西.

我的意思的例子 - 下面的每个ASCII表都与SQL表有些相关.etc..意味着有很多其他的柱状数据

乘用车

这是位置4,5的示例(对应于车辆线/系列).这些确实在一起,尽管上面说明了故障,但VIN源数据并没有真正区分位置4和5. …

sql database-design

7
推荐指数
1
解决办法
5062
查看次数

AngularJS 多个指令要求 ngModel

这是我正在尝试完成的一个jsfiddle 示例

我正在尝试构建一个美国电话号码输入,其中视图显示为 (333) 555-1212,但模型绑定到数字整数 3335551212。

我的目的是添加自定义验证器,NgModelController这就是为什么我有require: ng-model;有没有隔离范围和的更简单的解决方案NgModelController,但我需要两者。

您会在控制台中看到一个即时错误:Error: Multiple directives [ngModel, ngModel] asking for 'ngModel' controller on: <input ng-model="user.mobile numeric" name="telephone" type="tel">--以为我在这里使用了隔离范围...

javascript angularjs angularjs-directive angularjs-ng-model

2
推荐指数
1
解决办法
3342
查看次数

AWS SQS-在一条消息的可见性超时到期之前,队列不传递任何消息

编辑在我撰写本文时解决了这个问题:P-我喜欢这种解决方案。我认为无论如何我都会张贴它,也许其他人也会遇到同样的问题并找到我的解决方案。不在乎积分/因果关系等。我已经把整个事情写完了,所以我想把它和解决方案贴出来。

我有一个SQS FIFO队列。它正在使用一个死信队列。这是它的配置方式:

FIFO队列配置

我有一个生产者微服务,并且有10个ECS映像作为使用者运行。

重要的是,出于业务原因,我们必须在队列中传递消息的时间附近处理消息。

我们正在使用同时适用于生产者代码和使用者代码的AWS SDK Golang客户端软件包的最新版本(如果重要,我可以查找该版本,但并不是很过时)。

我捕获了生产者的日志,因此我确切地知道何时将消息放入队列中以及消息是什么。

我捕获所有使用者的汇总日志,因此我可以全面了解所有10个使用者以及何时接收和处理消息。

这是正常情况下查看日志的结果:

  1. 消息在时间x放入队列
  2. 时间x的十个消费者之一收到的消息
  3. 消费者成功处理了消息
  4. 使用者在时间x +(0-2秒)从队列中删除了消息
  5. 每天在不同的时间重复无限广告,每天最多重复约700条消息

但是我现在看到的问题是某些消息没有得到及时处理。有时,我们故意针对该消息处理系统状态的消息失败(例如,用户仍在登录,因此它应该退回并重试...)。问题是,如果使用者失败了一条消息,则会导致队列停止将任何其他消息传递给任何其他使用者。

这里的“无法处理消息”仅表示已接收到消息,但使用者将其声明为失败,因此我们只记录一个错误,而不继续从队列中删除它。因此,可见性超时(此处为5m)将过期,并将其重新交付给另一个使用者并重试10次,之后它将进入死信队列。

在深入研究日志并进行分析之后,这就是我所看到的:

  1. 流程如上所述开始(产生,消费,删除的消息)。
  2. 消费者在时间x收到新消息
  3. 使用者失败-记录错误并仅返回(不删除)
  4. 在x + 5m(可见性超时)时间再次收到相同的消息
  5. 使用者失败-记录错误并仅返回(不删除)
  6. 重复最多10次-消息进入死信队列
  7. 收到新消息,但现在晚了50分钟!
  8. 现在,在第2步到第7步之间放入队列的所有邮件都晚了50分钟(5m可见性超时* 10次重试)

所有我读过的文档告诉我的队列应该没有这样的行为,但我已经验证了它几次在我们的日志。遗憾的是,我们没有付费的AWS支持计划,或者我要向他们提交罚单。但是,请考虑以下事实:我们有10个独立的使用者都在同一队列中进行读取。他们仅从此队列读取。我们没有正在使用的任何其他队列。

对于重复数据删除,我们使用消息正文的自动哈希。消息是小的JSON文档。

我的期望是,如果我们有一条不良消息导致可见性超时,那么在有可用使用者的情况下,队列仍会愉快地传递其可用的任何其他消息。

go amazon-sqs

2
推荐指数
1
解决办法
1327
查看次数

使用 Google 管理目录 API 使用 Google ServiceAccountCredential 登录需要 401

我尝试遵循此处列出的简单示例:https ://developers.google.com/admin-sdk/directory/v1/quickstart/dotnet

不同之处在于我生成了一个服务帐户凭据,并将其分配为具有角色项目所有者的委托,因此它具有完全访问权限。我还为它分配了适当的作用域名称空间。

在这里它可以访问Orgunits,这就是我试图在 Directory API 中列出的内容

范围已分配

这是我定义的服务帐户

在此输入图像描述

这是我的凭据

在此输入图像描述

我下载了凭证的 JSON 并将其添加到我的项目中。我可以通过检查调试器确认代码加载 ServiceAccountCredential 并成功进行身份验证并获取访问令牌。

但随后我将凭据传递给服务初始化程序,当我创建并执行请求时,它会失败并显示

{"Google.Apis.Requests.RequestError\r\nLogin Required [401]\r\nErrors [\r\n\tMessage[Login Required] Location[Authorization - header] Reason[required] Domain[global]\r\n]\r\n"}
Run Code Online (Sandbox Code Playgroud)

这是代码:

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using System;
using System.Collections.Generic;
using System.IO;

namespace DirectoryQuickstart
{
    class Program
    {
        static string[] Scopes = { DirectoryService.Scope.AdminDirectoryUser, DirectoryService.Scope.AdminDirectoryOrgunit };
        static string ApplicationName = "slea-crm";
        static string Secret = "gsuite-secret.json";

        static void Main(string[] args)
        {

            ServiceAccountCredential sac = GoogleCredential.FromFile(Secret).CreateScoped(Scopes).UnderlyingCredential as ServiceAccountCredential;

            var token = sac.GetAccessTokenForRequestAsync().Result;

            // Create …
Run Code Online (Sandbox Code Playgroud)

google-api google-oauth google-api-dotnet-client google-admin-sdk google-workspace

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

管理目录 users.list 请求返回 400 Bad request

这发生在 API Explorer 中并使用 .NET 客户端 API。在 API Explorer 中,我尝试使用查询参数,但最终我删除了它,现在发送不带参数的请求,尽管我在浏览器中使用 OAuth2 成功进行了身份验证,但它仍然在 400 左右。

为什么这个端点被破坏了?

https://developers.google.com/admin-sdk/directory/v1/reference/users/list

google-api google-apis-explorer

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