自从我在Mac OS El Capitan上从Chrome 58 => 59升级后,当我使用Dev Tools网络检查器查看WebSocket框架时,框架不再可见.我们构建了一个大量使用WS的应用程序,所以我非常依赖这个功能.
我想也许这可能是我们在应用程序中改变的 - 编码或协议可能导致它不显示,所以我在这里尝试了这个简单的测试:https://websocket.org/echo.html
这导致DevTools中没有显示任何框架,但套接字消息与应用程序一起正常工作.我问过其他几个人,其中一些人没有这个问题.
我想知道我是否有一个导致此问题的扩展,或者我是否有其他可能阻止帧显示的神秘设置?
我使用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
我为不同的OEM 设计了一些车辆识别码(VIN)解码器.关于VIN编号的事情......尽管有些标准化,但每个OEM都可以重载字符位置代码并对它们进行不同的处理,添加"额外"元数据(即指向VIN编号之外的更多数据的星号)等等.尽管如此所有这些,我已经能够构建几个不同的OEM VIN解码器,现在我正在尝试构建一个GM VIN解码器,它让我头疼.
问题的关键在于,GM根据车辆或汽车的不同,对车辆属性部分(位置4,5,6,7)进行不同的处理.这是细分:


通常我所做的是设计我自己的原始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. …
这是我正在尝试完成的一个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">--以为我在这里使用了隔离范围...
编辑:在我撰写本文时解决了这个问题:P-我喜欢这种解决方案。我认为无论如何我都会张贴它,也许其他人也会遇到同样的问题并找到我的解决方案。不在乎积分/因果关系等。我已经把整个事情写完了,所以我想把它和解决方案贴出来。
我有一个SQS FIFO队列。它正在使用一个死信队列。这是它的配置方式:
我有一个生产者微服务,并且有10个ECS映像作为使用者运行。
重要的是,出于业务原因,我们必须在队列中传递消息的时间附近处理消息。
我们正在使用同时适用于生产者代码和使用者代码的AWS SDK Golang客户端软件包的最新版本(如果重要,我可以查找该版本,但并不是很过时)。
我捕获了生产者的日志,因此我确切地知道何时将消息放入队列中以及消息是什么。
我捕获所有使用者的汇总日志,因此我可以全面了解所有10个使用者以及何时接收和处理消息。
这是正常情况下查看日志的结果:
但是我现在看到的问题是某些消息没有得到及时处理。有时,我们故意针对该消息处理系统状态的消息失败(例如,用户仍在登录,因此它应该退回并重试...)。问题是,如果使用者失败了一条消息,则会导致队列停止将任何其他消息传递给任何其他使用者。
这里的“无法处理消息”仅表示已接收到消息,但使用者将其声明为失败,因此我们只记录一个错误,而不继续从队列中删除它。因此,可见性超时(此处为5m)将过期,并将其重新交付给另一个使用者并重试10次,之后它将进入死信队列。
在深入研究日志并进行分析之后,这就是我所看到的:
所有我读过的文档告诉我的队列应该没有这样的行为,但我已经验证了它几次在我们的日志。遗憾的是,我们没有付费的AWS支持计划,或者我要向他们提交罚单。但是,请考虑以下事实:我们有10个独立的使用者都在同一队列中进行读取。他们仅从此队列读取。我们没有正在使用的任何其他队列。
对于重复数据删除,我们使用消息正文的自动哈希。消息是小的JSON文档。
我的期望是,如果我们有一条不良消息导致可见性超时,那么在有可用使用者的情况下,队列仍会愉快地传递其可用的任何其他消息。
我尝试遵循此处列出的简单示例: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
这发生在 API Explorer 中并使用 .NET 客户端 API。在 API Explorer 中,我尝试使用查询参数,但最终我删除了它,现在发送不带参数的请求,尽管我在浏览器中使用 OAuth2 成功进行了身份验证,但它仍然在 400 左右。
为什么这个端点被破坏了?
https://developers.google.com/admin-sdk/directory/v1/reference/users/list
google-api ×2
amazon-sqs ×1
angularjs ×1
go ×1
google-oauth ×1
javascript ×1
silverlight ×1
sql ×1
websocket ×1