据我所知(并且我知道相对较少),例如秒针滴答时没有发出本机事件.我想出的最好的方法是反复检查Date对象(例如,每隔333ms;较短的间隔会导致更高的精度,但也会占用更多的资源).不知何故,如果我反复使用相同的Date对象,则时间不会更新
Date.prototype.getSeconds()
Run Code Online (Sandbox Code Playgroud)
记录'NaN'虽然typeof是'number'.
function clock(interval) {
var d = new Date();
var secondsOld = d.getSeconds();
d = null;
setInterval(function() {
var d = new Date();
var secondsNew = d.getSeconds();
if ( secondsNew !== secondsOld ) {
secondsOld = secondsNew;
// trigger something
console.log(secondsOld);
}
d = null;
}, interval);
}
Run Code Online (Sandbox Code Playgroud) 我不确定发生了什么变化,但是,在回到几周前我正在处理的应用程序之后,我的.Include()电话不再适用于我的一个相关表格.奇怪的是它适用于不同的表.以下是一些代码,其中的注释显示了我的结果:
//Get the order and nothing else.
using (OrderEntity orderContext = new OrderEntity(OrdersConnectionString)) {
var query = from order in orderContext.ShippingOrders
where order.ShipperId == shippingId
select order;
//I got a value!
shippingOrder = query.ToList().FirstOrDefault();
}
//Get the line item and nothing else.
using (OrderEntity orderContext = new OrderEntity(OrdersConnectionString)) {
var query = from orderItem in orderContext.ShippingOrderItems
where orderItem.ShipperId == shippingId
select orderItem;
//I got a value!
shippingOrderItems = query.ToList();
}
Run Code Online (Sandbox Code Playgroud)
这是我困惑的地方:
//Get the order *AND* the line item …Run Code Online (Sandbox Code Playgroud) 在我们的Web应用程序中,需要从数据库中的各种表中获取数据.今天,您可能会发现5个或6个数据库查询是针对单个请求串行执行的.这些查询都不依赖于来自另一个的数据,因此它们是并行执行的完美候选者.问题是众所周知的DbConcurrencyException,当针对相同的上下文执行多个查询时抛出该问题.
我们通常每个请求使用一个上下文,然后有一个存储库类,以便我们可以在各个项目中重用查询.然后,当处理控制器时,我们在请求结束时处理上下文.
下面是一个使用并行性的例子,但仍然存在问题!
var fileTask = new Repository().GetFile(id);
var filesTask = new Repository().GetAllFiles();
var productsTask = AllProducts();
var versionsTask = new Repository().GetVersions();
var termsTask = new Repository().GetTerms();
await Task.WhenAll(fileTask, filesTask, productsTask, versionsTask, termsTask);
Run Code Online (Sandbox Code Playgroud)
每个存储库都在内部创建自己的上下文,但就像现在一样,它们没有被处理掉.那是个问题.我知道我可以调用Dispose我创建的每个存储库,但这会使代码快速混乱.我可以为每个使用自己的上下文的查询创建一个包装器函数,但这感觉很麻烦,并不是解决问题的长期解决方案.
解决这个问题的最佳方法是什么?我希望客户端/消费者不必担心在并行执行多个查询的情况下处理每个存储库/上下文.
我现在唯一的想法是遵循类似于工厂模式的方法,除了我的工厂将跟踪它创建的所有对象.一旦我知道我的查询完成并且工厂可以在内部处理每个存储库/上下文,我就可以处理工厂.
我很惊讶地看到关于并行性和实体框架的这么少的讨论,所以希望来自社区的更多想法将会出现.
编辑
以下是我们的存储库的简单示例:
public class Repository : IDisposable {
public Repository() {
this.context = new Context();
this.context.Configuration.LazyLoadingEnabled = false;
}
public async Task<File> GetFile(int id) {
return await this.context.Files.FirstOrDefaultAsync(f => f.Id == id);
}
private bool disposed = false;
protected …Run Code Online (Sandbox Code Playgroud) 我正在寻找重新工作并简化我支持的应用程序中的错误处理.我们目前所有的页面都是从我们创建的基类继承而来,而这显然继承自System.Web.UI.Page.在这个基类中,当前正在重写OnError方法,然后调用MyBase.OnError,然后调用我们的一个自定义日志记录方法.
我没有看到覆盖OnError方法的任何好处,我认为最好让Global.asax中的Application_Error方法处理未处理的异常(记录它),然后配置中的customErrors部分会触发重定向用户的过程.
在网上看起来人们看起来很频繁地覆盖这种方法,但我认为没有必要和MSDN上的这篇文章让我思考一样.
我在活动目录中有一个安全组(如下图所示),它有一个关联的电子邮件地址。如何获取群组的电子邮件地址?该GroupPrincipal对象没有任何电子邮件地址属性。
这就是我检索所有组的方式:
using (PrincipalContext context = new PrincipalContext(DirectoryContextType, Domain)) {
using (var groupSearcher = new GroupPrincipal(context)) {
using (var searcher = new PrincipalSearcher(groupSearcher)) {
foreach (GroupPrincipal group in searcher.FindAll()) {
//How do I get the e-mail address?
}
}
}
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试开始针对本地Dynamo数据库服务进行开发.第一步是创建一个客户端:
var storedAWSCreds = new StoredProfileAWSCredentials();
Run Code Online (Sandbox Code Playgroud)
这引发了一个异常:
App.config不包含凭据信息.添加AWSAccessKey和AWSSecretKey或AWSProfileName
我的app.config具有所需的属性:
<add key="AWSProfileName" value="justin"/>
<add key="AWSProfilesLocation" value="C:\code\dynamodb\credentials"/>
Run Code Online (Sandbox Code Playgroud)
凭证配置文件:
justin
aws_access_key_id = REMOVED-FOR-POST
aws_secret_access_key = REMOVED-FOR-POST
Run Code Online (Sandbox Code Playgroud)
此时我想我会尝试其他一个重载方法并明确告诉构造函数参数应该是什么:
var storedAWSCreds = new StoredProfileAWSCredentials("justin", @"C:\code\dynamodb\credentials");
Run Code Online (Sandbox Code Playgroud)
同样,同样的例外.
好的,异常说我可以直接在我的配置中提供凭据,所以我尝试了:
<add key="AWSAccessKey" value="REMOVED-FOR-POST"/>
<add key="AWSSecretKey" value="REMOVED-FOR-POST"/>
Run Code Online (Sandbox Code Playgroud)
同样,同样的例外.
如何StoredProfileAWSCredentials创建对象?我显然遗漏了一些明显的或他们的异常消息不正确.
我将指出,我可以BasicAWSCredentials通过在构造函数中指定访问密钥和密钥来创建对象:
var basicAWSCreds = new BasicAWSCredentials("REMOVED-FOR-POST", "REMOVED-FOR-POST");
Run Code Online (Sandbox Code Playgroud)
但是,在某些时候我宁愿不在我的应用程序中对其进行硬编码.
存储过程如下:
CREATE PROCEDURE Foo
@bar varchar(100)
AS
SELECT * FROM tablename
WHERE columnname LIKE '%' + @bar + '%'
Run Code Online (Sandbox Code Playgroud)
我已经尝试将各种字符串传递给这个存储过程,但对我来说,看起来这样可以安全地从SQL注入,因为包含通配符之间的所有内容都会导致单个字符串.
我试图让bootstrap popover显示基于使用popover设置的元素的上下文内容.
这是一些示例标记:
<div class="user">
<img src="foo.jpg" />
</div>
<div class="userInfo">
<p>He likes pie!</p>
</div>
<div class="user">
<img src="bar.jpg" />
</div>
<div class="userInfo">
<p>He likes cake!</p>
</div>
Run Code Online (Sandbox Code Playgroud)
设置popover的脚本:
$('.user').popover({
trigger: 'hover',
placement: 'top',
html: true,
content: //What goes here? I want to display the contents of the userInfo class
});
Run Code Online (Sandbox Code Playgroud)
将鼠标悬停在user类上时的预期结果是显示一个弹出窗口,显示兄弟或子userInfo类中包含的内容.
我的标记可以灵活; 我可以把userInfo班级变成孩子,兄弟,父母等.
我正在创建一个可重用的方法来检查我的模型并自动构建ActionLink用于分页的URL(via ).我模型上的一个属性是string[](对于多选选择列表),它完全有效.URL的一个例子是:https://example.com?user=Justin&user=John&user=Sally.
但是,正如类型的名称所暗示的那样,RouteValueDictionary实现IDictionary因此它不能多次接受相同的键.
var modelType = model.GetType();
var routeProperties = modelType.GetProperties().Where(p => Attribute.IsDefined(p, typeof(PagingRouteProperty)));
if (routeProperties != null && routeProperties.Count() > 0) {
foreach (var routeProperty in routeProperties) {
if (routeProperty.PropertyType == typeof(String)) {
routeDictionary.Add(routeProperty.Name, routeProperty.GetValue(model, null));
}
if (routeProperty.PropertyType == typeof(Boolean?)) {
var value = (Boolean?)routeProperty.GetValue(model, null);
routeDictionary.Add(routeProperty.Name, value.ToString());
}
//The problem occurs here!
if (routeProperty.PropertyType == typeof(string[])) {
var value = (string[])routeProperty.GetValue(model);
foreach (var v in value) { …Run Code Online (Sandbox Code Playgroud) 我最近将我的应用程序从使用 ASP.NET 模拟切换到在应用程序池中实际指定身份。这样做的原因是为了使以后的使用async更容易,因此线程作为我的服务帐户运行。
自从进行更改以来,该站点一直遇到一些问题。在我进行更改的那天,我现在看到这些事件日志出现的频率更高(以前是每天 2-3 次,现在是每天 8-10 次):
Windows detected your registry file is still in use by other applications or services. The file will be unloaded now. The applications or services that hold your registry file may not function properly afterwards.
DETAIL -
3 user registry handles leaked from \Registry\User\S-1-5-21-1695807550-3099950144-3292890465-4346:
Process 3840 (\Device\HarddiskVolume2\Windows\System32\inetsrv\w3wp.exe) has opened key \REGISTRY\USER\S-1-5-21-1695807550-3099950144-3292890465-4346
Process 3840 (\Device\HarddiskVolume2\Windows\System32\inetsrv\w3wp.exe) has opened key \REGISTRY\USER\S-1-5-21-1695807550-3099950144-3292890465-4346\Control Panel\International
Process 3840 (\Device\HarddiskVolume2\Windows\System32\inetsrv\w3wp.exe) has opened key \REGISTRY\USER\S-1-5-21-1695807550-3099950144-3292890465-4346\Software\Microsoft\Windows\CurrentVersion\Explorer
Run Code Online (Sandbox Code Playgroud)
与活动目录交谈时,我也收到(似乎是随机的)错误:
System.Runtime.InteropServices.COMException (0x80005000): Unknown error …Run Code Online (Sandbox Code Playgroud) c# ×5
.net ×2
asp.net-mvc ×2
asp.net ×1
async-await ×1
events ×1
iis ×1
iis-7.5 ×1
javascript ×1
onerror ×1
popover ×1
sdk ×1
sql-server ×1
time ×1