小编Sam*_*les的帖子

多重性与基数

在谈论数据模型和数据库时,术语" 基数"通常用于描述给定集合中允许元素的数量.

UML通常引用与Multiplicity相同的属性.

这两个术语之间是否有任何差异,或者它们是同义词吗?

database database-design uml

29
推荐指数
4
解决办法
3万
查看次数

检查HtmlHelperMethod中是否存在(部分)视图

有谁知道是否可以检查HtmlHelperExtension中是否存在部分视图?

我知道可以从控制器使用以下内容:

 private bool ViewExists(string name)
 {
     ViewEngineResult result = ViewEngines.Engines.FindView(ControllerContext, name, null);
     return (result.View != null);
 }
Run Code Online (Sandbox Code Playgroud)

来源:Asp.Net MVC中是否存在视图?

但是您无法在帮助程序中执行上述操作,因为您无权访问控制器上下文.有关如何做到这一点的任何想法?

c# asp.net-mvc

27
推荐指数
2
解决办法
9983
查看次数

你应该多长时间去除文本输入

让我们说我们有一个简单的例子如下.

<input id="filter" type="text" />
<script>

    function reload() {
     // get data via ajax
    }

    $('#filter').change($.debounce(250,reload));
</script>
Run Code Online (Sandbox Code Playgroud)

我们正在做的是引入一个小延迟,以便reload在用户在输入中键入文本时减少调用次数.

现在,我意识到这将取决于具体情况,但考虑到平均(或可能应该是最低公分母)打字/交互速度,是否应该知道去抖延迟应该有多长.我通常只是玩弄它的值,直到它"感觉"正确,但我可能不代表一个典型的用户.有没有人对此做过任何研究?

javascript user-interface user-experience

26
推荐指数
2
解决办法
9776
查看次数

直接引用HTML元素

可能重复:
IE/Chrome:DOM树元素是全局变量吗?
为什么window [id] === document.getElementById(id)

我刚刚在html/javascript中遇到过一些让我感到惊讶的事情.当获得对html元素的引用时,使用javascript,我以前总是使用jQuery或document.getElementById.您还可以使用它的id直接访问元素.有人可以解释这个细微差别吗?我用Google搜索但找不到任何关于此功能的引用,每个网站都会讨论getElementById.

以下页面代码段说明了这一点.

<html>
<head>
</head> 
<body>
    <input type="button" value="getElement" onclick="document.getElementById('blah').innerText = 'getElementById'" />
    <input type="button" value="direct" onclick="blah.innerText = 'direct';" />
    <div id="blah"></div>
</body>
Run Code Online (Sandbox Code Playgroud)

提前谢谢了.

html javascript

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

Visual Studio 2012打开时编译速度慢

下午所有,

我有一个非常奇怪的问题.当VS 2012打开时,编译时间非常慢.通过VS和/或直接通过命令行中的csc.exe构建时,此编译时间较慢.

要测试:使用以下项创建一个文件夹:

批处理文件(compile.bat)包含:

echo %time%
csc /target:library class1.cs
echo %time%
Run Code Online (Sandbox Code Playgroud)

和class1.cs包含:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

现在打开visual studio命令提示符.导航到上面的文件夹并运行批处理命令,而不打开VS. 在我的机器上,这大约需要10毫秒,非常完美.

我现在打开VS 2012,打开没有解决方案,除了打开应用程序以便devenv正在运行之外什么都不做.

现在通过运行批处理文件重复测试,编译时间现在是10000ms(10秒).

我已经检查了事件查看器,查看当VS打开时发生的任何事情,但是当它关​​闭时,使用procmon和filemon查找文件访问并检查VS是否在打开时启用任何服务,所有这些都没有成功/影响.

我甚至尝试卸载并重新安装VS,这解决了前几个版本的问题,但随后又重新出现了.重新启动机器无效.我在VS中没有安装插件.

我的同事机器不显示此问题,并且它们具有相同的设置.这一切都在16GB RAM,64位win 7和SSD的机器上运行.

有人有任何线索吗?

c# visual-studio-2010

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

Docker无法链接到非运行容器 - 通过重新启动修复

我在Ubuntu上的docker上运行了一个ELK堆栈.有时,弹性搜索容器将由于错误的查询或错误消息而终止,这是我们开发环境中的预期行为.

我们遇到的问题是,在ES容器终止后,由于以下错误,无法重新启动Logstash容器:

Cannot link to a non running container: /elasticsearch AS /logstash/elasticsearch
Run Code Online (Sandbox Code Playgroud)

完整的命令列表是:

$ sudo docker stop logstash
$ sudo docker start elasticsearch
$ sudo docker start logstash
 Cannot link to a non running container: /elasticsearch AS /logstash/elasticsearch
Run Code Online (Sandbox Code Playgroud)

我已经验证ES容器确实已经恢复,我可以通过curl连接到ES,但logstash容器将无法启动.

logstash容器配置了以下链接:

/elasticsearch:/logstash/elasticsearch
Run Code Online (Sandbox Code Playgroud)

Docker版本信息:

$ docker version
Client:
 Version:      1.11.0
 API version:  1.23

$docker --version    
Docker version 1.11.0, build 4dc5990
Run Code Online (Sandbox Code Playgroud)

重新启动整个VM可以解决问题,并允许我正确地重新启动所有容器,一切都很好,直到ES再次终止.

虽然不是世界末日,但我真的宁愿避免重启来解决这个问题.

有任何想法吗?

docker

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

SQL Azure - 一个会话锁定整个数据库以进行更新和插入

SQL Azure问题.

我的问题在我们的(asp.net)网站上显示为以下异常:

超时已过期.操作完成之前经过的超时时间或服务器没有响应.该语句已终止.

它还导致更新和插入语句永远不会在SMSS中完成.查询时不存在任何X或IX锁:sys.dm_tran_locks查询时没有事务sys.dm_tran_active_transactionssys.dm_tran_database_transactions.

问题出现在数据库中的每个表中,但同一实例上的其他数据库不会导致问题.问题的持续时间可以是2分钟到2小时,并且不会在一天中的任何特定时间发生.

数据库未满.

有一次这个问题没有自行解决,但我能够通过查询sys.dm_exec_connections找到运行时间最长的会话,然后杀死它来解决问题.奇怪的是,连接是15分钟,但锁定问题已经存在超过3个小时.

还有什么我可以检查的吗?

编辑

按照保罗的回答如下.在他回答之前,我实际上已经找到了问题.我会在下面发布我用来解决这个问题的步骤,以防他们帮助其他人.

当存在"超时期限"时,运行以下查询.

select *  from sys.dm_exec_requests
Run Code Online (Sandbox Code Playgroud)

请求统计

我们可以看到,所有WAIT请求都在等待会话1021,即复制请求!该TM Request指示DTC事务,我们不使用分布式事务.您还可以看到wait_type SE_REPL_COMMIT_ACK再次暗示复制.

select * from  sys.dm_tran_locks
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

再次等待1021会话

SELECT * FROM sys.dm_db_wait_stats ORDER BY wait_time_ms desc
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

是的,SE_REPL_CATCHUP_THROTTLE总等待时间为8094034毫秒,即134.9分钟!

有关此问题的详细信息,请参阅以下论坛. http://social.technet.microsoft.com/Forums/en-US/ssdsgetstarted/thread/c3003a28-8beb-4860-85b2-03cf6d0312a8

我在与微软的沟通中得到了以下答案(我们已经在欧盟数据中心的15个数据库中看到了这个问题):

问题:在过去三周内,即自我的问题开始以来,这些软限制限制是否有变化?

答:不,没有.

问题:我们有什么方法可以阻止或警告我们接近极限?

答:不会.问题可能不是由您的应用程序引起的,但可能是由依赖相同物理硬件的其他租户引起的.换句话说,您的应用程序可以承受很小的负载并仍然遇到问题.换句话说,您自己的流量可能是导致此问题的原因,但也可能是由依赖于相同物理硬件的其他租户造成的.事先没有办法知道这个问题很快就会发生 - 它可以在没有任何警告的情况下随时发生.SQL Azure操作团队不会监视此类错误,因此他们不会自动尝试为您解决问题.因此,如果你碰到它,你有两个选择:

  1. 创建数据库的副本并使用它,并希望将数据库放置在负载较小的另一台服务器上.

  2. 联系Windows Azure支持并告知有关问题的信息,并让他们为您执行选项1

sql sql-server azure-sql-database

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

Aurelia视图中的脚本标记未执行

我正在为一个简单的aurelia视图添加一个简单的脚本块:

<template>
    <script type="text/javascript">
    alert('Hello!');
    </script>
</template>
Run Code Online (Sandbox Code Playgroud)

即使视图正确呈现,我也可以看到脚本块确实出现在DOM中,因此永远不会运行该脚本.

我也尝试通过viewModel动态插入脚本块,并尝试使用:

 <script type="text/javascript" src="http://blah"></script>
Run Code Online (Sandbox Code Playgroud)

我理解这不是最佳做法,但我正在尝试集成第三方窗口小部件,然后呈现iframe.上面显示的警报只是验证我所看到的问题的一种简单方法.

现实生活场景如下:

  • 我从我的视图模型中向第三方发出api呼叫.
  • 返回以下内容:

    <script type='text/javascript' language='JavaScript'src =' https://secure.na1.echosign.com/public/embeddedWidget?`妇女参与发展= CBFCIBAA3AAABLblqZhBU33GaMRZ2lMelHKzti7RkanxMP5v- uW_f8CEiKoopNNofJWyXhmE56Su3HTbY*标记= CBNCKBAAHBCAABAARNiZ7Yba0h7dnLaQRBAdTdH9UrJZKryP" />

我需要将它附加到DOM并让它执行.我正在解决这个问题,通过fetch调用上面的url,然后我执行响应,但这似乎是一个单调乏味的hacky方式.

javascript aurelia

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

OAuthBearerAuthenticationMiddleware - 在发送HTTP标头后,服务器无法附加标头

我一直在尝试将一些OWIN中间件插入到现有的WebApi项目中.我的初创公司最初只包含以下几行:

application.UseOAuthBearerAuthentication(newOAuthBearerAuthenticationOptions());
application.UseWebApi(config);
Run Code Online (Sandbox Code Playgroud)

有了这个配置,我间歇性地,主要是在iisreset之后,接收到由中间件试图添加标头但是在响应发送后引起的格式错误的响应(由fiddler确定),这被报告为异常:

Server cannot append header after HTTP headers have been sent.
Run Code Online (Sandbox Code Playgroud)

我重新编译了Microsoft.Owin.Security.OAuth以添加一些额外的跟踪来显示事情发生的顺序,并得到以下输出:

Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware Information: 0 : : OAUTH: Authenticating...
System.Web.Http.Request: ;;http://localhost:555/entityinstance/member    
System.Web.Http.Controllers: WebHostHttpControllerTypeResolver;GetControllerTypes;: 
System.Web.Http.Controllers: WebHostHttpControllerTypeResolver;GetControllerTypes;: 
System.Web.Http.MessageHandlers: LogHandler;SendAsync;: 
System.Web.Http.Controllers: DefaultHttpControllerSelector;SelectController;Route='entityDefinitionName:member,controller:EntityInstance'
System.Web.Http.Controllers: DefaultHttpControllerSelector;SelectController;EntityInstance
System.Web.Http.Controllers: HttpControllerDescriptor;CreateController;: 
System.Web.Http.Controllers: WindsorCompositionRoot;Create;: 
System.Web.Http.Controllers: WindsorCompositionRoot;Create;Loyalty.Services.WebApi.Controllers.EntityInstanceController
System.Web.Http.Controllers: HttpControllerDescriptor;CreateController;Loyalty.Services.WebApi.Controllers.EntityInstanceController
System.Web.Http.Controllers: EntityInstanceController;ExecuteAsync;: 
System.Web.Http.Action: ApiControllerActionSelector;SelectAction;: 
System.Web.Http.Action: ApiControllerActionSelector;SelectAction;Selected action 'Get(String entityDefinitionName)'
System.Net.Http.Formatting: DefaultContentNegotiator;Negotiate;Type='HttpError', formatters=[JsonMediaTypeFormatterTracer, XmlMediaTypeFormatterTracer, FormUrlEncodedMediaTypeFormatterTracer, FormUrlEncodedMediaTypeFormatterTracer]
System.Net.Http.Formatting: JsonMediaTypeFormatter;GetPerRequestFormatterInstance;Obtaining formatter of type 'JsonMediaTypeFormatter' for type='HttpError', mediaType='application/json; charset=utf-8'
System.Net.Http.Formatting: JsonMediaTypeFormatter;GetPerRequestFormatterInstance;Will use same 'JsonMediaTypeFormatter' formatter
System.Net.Http.Formatting: DefaultContentNegotiator;Negotiate;Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'
System.Web.Http.Controllers: EntityInstanceController;ExecuteAsync;: …
Run Code Online (Sandbox Code Playgroud)

oauth asp.net-web-api owin katana

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

使用条件相等实现IEqualityComparer <T>的GetHashCode

我想知道是否有人对此问题有任何建议.

我使用带有自定义IEqualityComparer的intersect和except(Linq)来查询设置差异并设置两个ISyncableUsers序列的交集.

public interface ISyncableUser
{
    string Guid { get; }
    string UserPrincipalName { get; }
}
Run Code Online (Sandbox Code Playgroud)

两个ISyncableUsers是否相等的逻辑是有条件的.条件围绕两个属性Guid和UserPrincipalName中的任何一个是否具有值.解释这种逻辑的最好方法是使用代码.下面是我的客户IEqualityComparer的Equals方法的实现.

public bool Equals(ISyncableUser userA, ISyncableUser userB)
{
    if (userA == null && userB == null)
    {
        return true;
    }

    if (userA == null)
    {
        return false;
    }

    if (userB == null)
    {
        return false;
    }

    if ((!string.IsNullOrWhiteSpace(userA.Guid) && !string.IsNullOrWhiteSpace(userB.Guid)) &&
        userA.Guid == userB.Guid)
    {
        return true;
    }

    if (UsersHaveUpn(userA, userB))
    {
        if (userB.UserPrincipalName.Equals(userA.UserPrincipalName, StringComparison.InvariantCultureIgnoreCase))
        {
            return true;
        }
    }
    return false;
} …
Run Code Online (Sandbox Code Playgroud)

c# linq set hashcode

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