小编Hen*_*son的帖子

在Visual Studio 2017中更新节点版本

有没有人知道在Visual Studio 2017中更新Node的制裁方法?我已经在我的开发PC上设置了Node 6,但是VS2017似乎附带了Node 5的捆绑副本,这意味着npm install在我的命令行上运行会设置各种包,例如node-sassNode 6的绑定,所以当我运行gulp时由于版本不匹配,VS任务运行器中的任务会出现问题.

我找到了VS Node安装,C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\External但我有点不愿意破解并更换它.有人有升级经验吗?我知道我可以通过降级我的电脑上的版本进行同步,但这似乎是倒退.

visual-studio node.js visual-studio-2017

85
推荐指数
2
解决办法
4万
查看次数

最佳IP到国家数据库

我们在几个系统中要求根据用户的IP地址检测用户的国家/地区.我们更喜欢使用数据库而不是Web服务(以防止出现停机/网络访问外部托管服务的问题)所以我正在寻找建议,任何人都有各种IP到国家数据库的好或坏故事. ?

我从谷歌找到了什么:

付费

自由

有关免费赠品与付费赠品相比的任何信息都是好的.现在我倾向于Maxmind的付费服务,因为它包括我们可以每周一次通过脚本运行的自动更新.

country geolocation ip-geolocation maxmind

48
推荐指数
2
解决办法
6万
查看次数

C#类型的尾随点表示什么?

我一直在查看与Razor View引擎相关的调试器中的一些代码,我注意到一些类型出现在Debugger中,在类型名称的末尾有一个尾随点字符,例如:

{Nancy.ViewEngines.Razor.RazorViewEngine.}

有谁知道这表明了什么?在对象上指定强制转换时使用它是无效的语法,因此我对它在调试器中的含义感到好奇.

编辑:根据@Damien_The_Unbeliever的要求,调试器中变量的屏幕截图:

调试图像

我正在看的代码:

public TCompiledView GetOrAdd<TCompiledView>(
            ViewLocationResult viewLocationResult, Func<ViewLocationResult, TCompiledView> valueFactory)
        {
            TCompiledView compiledView = default(TCompiledView);
            compiledView = (TCompiledView)this.cache.GetOrAdd(viewLocationResult, x => valueFactory(x));
Run Code Online (Sandbox Code Playgroud)

为了给出更多背景知识,我们尝试将日志记录添加到我们的Nancy View Cache中,以调查Razor Views抛出编译错误的间歇性问题,但这与问题无关.

.net c# reflection razor

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

是否可以在Handlebars模板中嵌套if/else语句?

我想知道是否可以使用把手嵌套多个if/else语句?到目前为止,我所有的尝试都导致编译错误,我想做的是如下:

{{if address}}
    <ul>
    <li>address.line1</li>
    <li>address.line2</li>
    {{if address.line3}}<li>address.line3</li>{{/if}}
    {{if address.line4}}<li>address.line4</li>{{/if}}
{{else}}
   No address given
{{/if}}
Run Code Online (Sandbox Code Playgroud)

我在这里尝试的是可以实现的吗?它总是导致解析器错误,因此我通过编写帮助程序来处理吐出地址(处理javascript中line3/line4的条件性)来解决它:

{{if address}}
    {{formatAddress address}}
{{else}}
   No address given
{{/if}}
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但不必为这种简单条件的每个实例编写一个辅助函数.

html javascript templates handlebars.js

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

检测在运行时使用"dynamic"关键字作为类型参数

我怀疑这个问题的简短回答是"不",但我对在C#4.0中运行时检测动态关键字的使用感兴趣,特别是作为方法的泛型类型参数.

为了给出一些背景知识,我们在一些库中共享了一个RestClient类,这些类在我们的许多项目中共享,它们使用一个类型参数来指定在反序列化响应时应该使用的类型,例如:

public IRestResponse<TResource> Get<TResource>(Uri uri, IDictionary<string, string> headers)
    where TResource : new()
{
    var request = this.GetRequest(uri, headers);
    return request.GetResponse<TResource>();
}
Run Code Online (Sandbox Code Playgroud)

不幸的是(由于我不会为了简洁而进入这里的原因)使用dynamic作为类型参数以返回动态类型不能正常工作 - 我们必须在类中添加第二个签名返回动态响应类型:

public IRestResponse<dynamic> Get(Uri uri, IDictionary<string, string> headers)
{
    var request = this.GetRequest(uri, headers);
    return request.GetResponse();
}
Run Code Online (Sandbox Code Playgroud)

但是,使用dynamic作为第一个方法的类型参数会导致一个非常奇怪的错误,它会掩盖实际问题并使调试整个过程变得令人头疼.为了帮助其他使用API​​的程序员,我想尝试在第一种方法中检测动态的使用,以便它根本不会编译或者在使用时会抛出异常.如果你想要一个动态响应类型,请"使用其他方法".

基本上:

public IRestResponse<TResource> Get<TResource>(Uri uri, IDictionary<string, string> headers)
    where TResource is not dynamic
Run Code Online (Sandbox Code Playgroud)

要么

public IRestResponse<TResource> Get<TResource>(Uri uri, IDictionary<string, string> headers)
    where TResource : new()
{
    if (typeof(TResource).isDynamic()) 
    {
           throw new Exception();
    }

    var request = this.GetRequest(uri, headers); …
Run Code Online (Sandbox Code Playgroud)

.net c# dynamic .net-4.0 generic-type-argument

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

使用Sencha Touch 2的大型离线存储

我目前正在开发移动应用程序(使用Sencha Touch 2实现并设计为在iPad上运行).需要从Web服务向应用程序提取相当大量的数据(3000多个对象,对象有大约30个字段),然后在本地保留数据以供脱机使用.我已经研究了这里和其他地方讨论的标准解决方案,其中localstorage代理用于在从Web服务中提取数据后保留数据,但由于我试图保留的数据量,我遇到了可怕的QUOTA_EXCEEDED_ERR.

围绕像SQLLite和Lawnchair这样的事情有很多线索(包括这个帖子,其中有人提到将Sencha与Lawnchair集成在一起并引用了我在任何地方都找不到的指南),但没有具体的例子或成功案例.任何人都可以推荐一种使用Sencha Touch持久保存大型数据集的尝试/测试方法吗?

编辑:在Sencha论坛上问了一个类似的问题后,我正在研究使用SQLite代理为SQL2使用SQLite.一旦我取得进展,将进一步更新此线程以造福他人.

javascript sqlite local-storage sencha-touch

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

您可以在Azure Devops中更改azure-pipelines.yaml的位置吗?

是否可以配置Azure DevOps管道azure-pipelines.yaml在自定义位置查找文件?

我们在当前工作中使用的是单存储源控制架构,其中包含不同的程序包,packages/<package-name>并且其中只有一个程序需要Azure DevOps管道,因此理想情况下,我们希望将YAML配置与程序包一起存储,而不是在程序包中回购的根目录,但在DevOps门户中找不到任何选项。绝对可以在其他类似服务(例如AWS CodeBuild)中进行配置。

continuous-integration build azure azure-devops

6
推荐指数
3
解决办法
1100
查看次数

$ .getJSON在IE9及以下版本中将undefined返回到成功回调

我们遇到了一个奇怪的问题,$ .getJSON调用似乎只影响旧版本的IE.代码如下:

var success = function (response) {
     // do stuff
}

$.getJSON(url, success);
Run Code Online (Sandbox Code Playgroud)

在Chrome,Firefox,IE10下,这段代码工作得很好 - getJSON点击URL(有效,不是跨域),返回200 OK并返回数据,然后按照您的预期传递给成功函数.

但是在IE9及更低版本下,将调用成功回调,但未定义传递的响应参数.通过在IE开发工具中捕获网络流量,我可以看到呼叫到达URL,返回200 OK并在响应正文中返回有效的JSON.那么,当它遇到成功回调时,为什么会出现这种情况?

我尝试使用$ .ajax调用而不是使用适当的参数,我看到了相同的行为.代码如下:

$.ajax({
    dataType: "json",
    url: url,
    success: success
};
Run Code Online (Sandbox Code Playgroud)

我们正在使用jQuery 1.7.2(我们在页面上获得的一个库在较新版本的jQuery下被破坏,因此是旧版本).

编辑:刚尝试更新页面使用jQuery 1.10.1,并没有解决问题.

编辑2:我已经确认返回的JSON数据是通过jsonlint.com有效的,所以这也不是问题.

javascript ajax jquery json

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

使用AdoNetAppender时,Log4net依赖于System.Data.dll

我们在当前项目中设置了log4net,以使用AdoNetAppender将日志条目写入SQL Server数据库.这一切都正常,但由于某些原因,为了使其工作,我们必须在System.Data.dll上将Copy Local设置为true - 如果bin目录中不存在此DLL,则log4net将不会输出到SQL Server并将抛出有关丢失的DLL的错误.

这是log4net中的错误吗?我认为,因为System.Data.dll是一个.Net框架组件,log4net可以在GAC中找到它.

作为参考,我们使用的是log4net 1.2.10.0和.Net 4.5

编辑 - 为了更好的可读性,如果其他人遇到此问题,我使用的原始XML配置将connectionType定义为:

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data" />
Run Code Online (Sandbox Code Playgroud)

将其更改为以下修复了该问题.

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Run Code Online (Sandbox Code Playgroud)

.net sql-server log4net .net-4.0 system.data

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

Jenkins脚本将所有构建限制为给定节点

我们最近在我们的Jenkins构建环境中添加了第二个从属节点,为特定构建运行不同的操作系统(Linux而不是Windows).不出所料,这意味着我们需要通过"限制此项目可以运行的位置"设置来限制构建.然而,我们有很多构建(100+),所以点击它们所有人手动更改此设置的前景并不令我感到兴奋.

有人可以通过Jenkins脚本控制台提供一个groovy脚本来实现这一目的吗?我过去曾使用类似的脚本来更改其他设置,但我找不到任何有关此特定设置的参考.

groovy hudson jenkins

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