小编Mal*_*ric的帖子

使用NPM打包分支Git存储库的BUILT版本的正确方法是什么?

我最近分叉了一个GitHub存储库来修复问题,并创建了一个pull请求.当我等待拉取请求被接受时,我已将我的本地指向package.json我的分叉仓库,如下所示:

devDependencies: {
    "karma-mocha": "maloric/karma-mocha"
}
Run Code Online (Sandbox Code Playgroud)

然而事实证明,karma-mocha需要执行构建步骤来生成lib/adapter.js- 包的重要部分.此文件列在.gitignore,因此在存储库中不存在.构建步骤是一个繁琐的任务,通常在包发布到npm时执行,因此adapter.js存在于下载的npm模块中.

我的问题是:打包存储库的分叉构建版本的正确方法是什么,以便我可以将其用作依赖项?据我所知,我有以下选择:

  1. 在本地构建存储库,.tgz使用构建的文件创建文件,然后将其托管在某处并将package.json指向该文件.
  2. 在本地构建存储库,更改.gitignore为允许adapter.js,然后推送到Github上的分支并使用该分支作为我的依赖项.

这些都可以,但我觉得我错过了一些东西.npm是否有分叉包的概念?并不是每个git存储库都可以用作依赖,而不需要某种构建/分析步骤,那么做这种事情的可接受方式是什么?

git github npm git-fork package.json

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

如何在ElasticSearch中执行多个"match"或"match_phrase"值

所以ElasticSearch有一个术语查询,它允许我提供多个值并返回一个文档,其中字段X匹配任何这些值.

但我想用match_phrase做同样的事情- 即返回文档,其中字段X包含对带空格的术语不区分大小写的匹配.我目前使用或过滤器(见下文).但这似乎是一种非常冗长的方式来做我想要的,考虑到术语已经做了类似的事情.

目前的方法

在单个字段中搜索三个值之一的查询应该是33行,这似乎很荒谬.

{
  "query": {
    "filtered": {
       "filter": {
           "or": {
              "filters": [
                 {
                     "query": {
                         "match_phrase": {
                            "myField1": "My first search phrase"
                         }
                     }
                 },
                 {
                     "query": {
                         "match_phrase": {
                            "myField1": "My second search phrase"
                         }
                     }
                 },
                 {
                     "query": {
                         "match_phrase": {
                            "myField1": "My third search phrase"
                         }
                     }
                 }
              ]
           }
       }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

如何在WCF服务中记录原始请求

我有几种方法的WCF服务.我想记录来自客户端的原始请求,无论它是如何发送的.一种方法接受数据作为查询字符串(严格用于遗留支持),我可以使用它来记录:

OperationContext.Current.IncomingMessageHeaders.To.AbsoluteUri
Run Code Online (Sandbox Code Playgroud)

这种情况就足够了,但其他方法允许客户端使用svcutil.exe生成的代理类将数据作为XML发送.在这种情况下,我在s:Body of中找到了我想要的数据:

OperationContext.Current.RequestContext.RequestMessage
Run Code Online (Sandbox Code Playgroud)

不幸的是,无论我尝试什么,我都无法在读取之前创建消息的缓冲副本.这是一个例子:

public CascadeResponse SendCustomer(Customer c)
    {
        Message msg = OperationContext.Current.RequestContext.RequestMessage.CreateBufferedCopy(Int32.MaxValue).CreateMessage();
        LogMessage(msg);
        // Now that the request is logged, get on with the rest
    }
Run Code Online (Sandbox Code Playgroud)

但是,在SendCustomer的第一行,我收到以下错误:

此消息不支持该操作,因为它已被读取.

这是我创建缓冲副本的关键吗?我猜我在这里犯了一些错误的东西.

编辑:

好的,所以方法现在是这样的:

public CascadeResponse SendCustomer(Message requestMessage)
    {
        Message msg = OperationContext.Current.RequestContext.RequestMessage.CreateBufferedCopy(Int32.MaxValue).CreateMessage();
        LogMessage(msg);
        // Now that the request is logged, get on with the rest        
        Customer c = msg.GetBody<Customer>();
        string clientKey = "1111"; // This should be the clientKey string passed to the function along with the customer 
        return …
Run Code Online (Sandbox Code Playgroud)

asp.net wcf request operationcontext

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

MVC Editor在一个页面上为多个编辑表单进行模型绑定

我有一个名为的类CategoryModel,其中一个属性是相同类型的对象列表.CategoryModel.Categories类型也是如此List<CategoryModel>.

在类别索引页面上,我为每个类别显示一个编辑器,以便用户可以更改任何类别名称,而无需转到专用页面来执行此操作.像这样:

<ul id="categories>
    @Html.EditorFor(model => model.Categories)
</ul>
Run Code Online (Sandbox Code Playgroud)

CategoryModel看起来像这样的编辑器模板:

<li class="folder">
    @using (Html.BeginForm("Edit", "Category", new { id = Model.Key }, FormMethod.Post, new { @class = "ajaxoff"})) {
        @Html.ValidationSummary(true)
        @Html.HiddenFor(model => model.Key)
        @Html.HiddenFor(model => model.ParentKey)
        @Html.HiddenFor(model => model.Sequence)
        @Html.HiddenFor(model => model.IncludeDeleted)

        @Html.TextBoxFor(model => model.Name, null, new { @class = "catName" })
        @Html.ValidationMessageFor(model => model.Name)

        <input type="submit" value="Save" class="icon save" />
    }
</li>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是提交表单没有正确绑定到以下的Edit操作CategoryController:

[HttpPost]
public ActionResult Edit(CategoryModel category)
{
    // …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc model-binding razor

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

使用 DataContractSerializer 慢速序列化 WCF 响应

我有一个 WCF 服务,它执行搜索并将相当复杂的对象列表返回给客户端。这是一个 EAV 系统,因此返回的每个实体都有一个附加值列表,其大小取决于实体蓝图。

在我的测试搜索中,我已经通过日志确认实际搜索几乎在所有情况下都需要不到一秒钟的时间才能完成。在将响应返回给客户端之前,我做的最后一件事是记录处理已完成。

不幸的是,客户端直到我完成后 15-20 秒才收到响应。总响应大小约为 250kb,非常小。这正在通过 LAN 传输,我已经尝试禁用防火墙和防病毒软件以确保两者都没有干扰。

然而,我注意到,如果响应小得多,例如通过删除附加到每个实体的字段,响应的速度会快得多。我还尝试单步执行服务的本地托管 (IIS) 副本,在通过最终return语句后,仍然需要 15 秒才能到达本地客户端应用程序。

我使用 basicHttpBinding 作为服务将被 .Net 和 PHP 客户端使用。

那么,任何人都可以提出一种我可以确认情况确实如此的方法吗?我该如何解决极其缓慢的序列化时间?

编辑:

为了澄清起见,我用 [DataContract] 属性标记了每个类,并用 [DataMember] 标记了每个属性 - 当我返回数据时,WCF 正在处理序列化。在这种情况下,它是一个实体类型的列表(一个包含值列表的自定义类。

编辑2:

我已经测试了 DataContractSerializer 的速度,将 65 个返回实体的列表写入一个简单的内存流大约需要 15 秒。这看起来很荒谬,我不确定是什么改变使它如此痛苦地缓慢。

c# wcf serialization

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

Polymer Paper-Radio-Group - 如何使用相同名称的多个单选按钮

我正在使用Polymer Project中的Paper Elements来构建表单,并且使用paper-radio-group标签及其子项遇到了问题paper-radio-button.使用正常的单选按钮列表,我会执行以下操作:

<input type="radio" name="myFieldName" value="MyFirstOption" />
<input type="radio" name="myFieldName" value="MySecondOption" />
<input type="radio" name="myFieldName" value="MyThirdOption" />
Run Code Online (Sandbox Code Playgroud)

请注意,name属性是相同的,将单选按钮分组并为myFieldName字段生成单个值.但是以paper-radio-group相同的方式使用元素不起作用:

<paper-radio-group label="My Field">
  <paper-radio-button name="myFieldName" label="First"></paper-radio-button>
  <paper-radio-button name="myFieldName" label="Second"></paper-radio-button>
  <paper-radio-button name="myFieldName" label="Third"></paper-radio-button>
</paper-radio-group>
Run Code Online (Sandbox Code Playgroud)

这会产生三个单选按钮,但选择一个不会取消选择其他按钮.如果我给每个人一个唯一的名称,那么它从UI的角度来看,但不同于标准的单选按钮行为.

除此之外,我在哪里指定每个单选按钮的值?有一个标签属性,但没有任何价值.我是否必须将隐藏的字段连接到change事件paper-radio-buttoncore-select事件上paper-radio-group?这似乎都不是一个特别优雅的解决方案.

forms polymer paper-elements

5
推荐指数
2
解决办法
5047
查看次数

在IIS中添加net.pipe绑定时"未设置对象引用"

我有本地托管的WCF服务,我想使用命名管道.我之前在运行Windows 7的工作机器上做过这个,但是在Windows 8上尝试相同的操作我无法添加net.pipe绑定 - 我只是得到一个"对象引用没有设置为对象的实例"错误添加任何非http绑定(除https以外).

我采取了以下步骤:

  1. 启用.Net Framework 3.5中的"Windows Communication Foundation非HTTP激活"功能,以及.Net Framework 4.5高级服务下的"命名管道激活"功能.我已经自己激活了,并且一起激活了.
  2. 确保Net.Pipe侦听器适配器服务在本地运行.
  3. 在"高级设置"下向网站添加了"net.pipe"协议.
  4. 重新启动我的计算机,重置IIS,重置站点,回收应用程序池,重新启动Universe及其中的所有内容.

有没有人遇到过这个?这可能是Windows 8的怪癖吗?

.net iis wcf named-pipes iis-8

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

如何使用C#提供SVG,以便它将呈现为CSS背景图像

我有一个生成SVG输出的服务器端脚本.我正在使用MVC3,在RenderSVG方法中我返回SVG的内容,如下所示:

return Content(svgContent, "text/xml; charset=utf-8");
Run Code Online (Sandbox Code Playgroud)

在这种情况下svgContent,只是SVG文件的内容.如果我直接导​​航到我的RenderSVG方法,它会按预期渲染我的图像.但是,如果我设置相同的URL,则background-imageCSS标记的属性不会呈现.我使用的是最新版本的Chrome,可以确认正常的SVG文件正常呈现为背景图像.但是这个服务器端版本没有.

我有什么想法我做错了吗?以下是原始图像和服务器端版本的响应标头.在每种情况下,图像的内容都相同.

原始响应标头

HTTP/1.1 304 Not Modified
Last-Modified: Mon, 23 Sep 2013 04:56:16 GMT
Accept-Ranges: bytes
ETag: "018f63b19b8ce1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Run Code Online (Sandbox Code Playgroud)

日期:星期四,2014年1月23日11:38:38 GMT

脚本响应头

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 23 Jan 2014 11:39:29 GMT
Content-Length: 490
Run Code Online (Sandbox Code Playgroud)

css c# asp.net-mvc svg

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

在OSX Yosemite上DNU恢复未知标头

我已经尝试了几次使用官方Asp.Net文档和其他地方的说明在我的MacBook上运行.Net.最新的尝试是使用此处的Yeoman发生器指令.

但是,当我尝试运行DNU Restore时,我总是会遇到相同的错误,尽管对于不同的库.错误是"unknown header:"后跟一个根据库而不同的数字.这是一个例子(为简洁起见,仅包括前几行和后几​​行):

Error: DownloadPackageAsync: https://www.nuget.org/api/v2/package/Microsoft.AspNet.Loader.IIS/1.0.0-beta5
  Unknown header: 3649249205
----------
System.NotSupportedException: Unknown header: 3649249205
  at SharpCompress.Common.Zip.ZipHeaderFactory.ReadHeader (UInt32 headerBytes, System.IO.BinaryReader reader) [0x00000] in <filename unknown>:0
  at SharpCompress.Common.Zip.SeekableZipHeaderFactory+<ReadSeekableHeader>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0
  at SharpCompress.Archive.Zip.ZipArchive+<LoadEntries>c__Iterator0.MoveNext () [0x00000] in <filename unknown>:0
  at SharpCompress.LazyReadOnlyCollection`1+LazyLoader[SharpCompress.Archive.Zip.ZipArchiveEntry].MoveNext () [0x00000] in <filename unknown>:0
  at System.IO.Compression.ZipArchive.CreateZip (System.IO.Stream stream, ZipArchiveMode mode) [0x00000] in <filename unknown>:0
  at System.IO.Compression.ZipArchive..ctor (System.IO.Stream stream, ZipArchiveMode mode, Boolean leaveOpen) [0x00000] in <filename unknown>:0
  at Microsoft.Framework.PackageManager.Restore.NuGet.PackageUtilities.EnsureValidPackageContents (System.IO.Stream stream, Microsoft.Framework.PackageManager.PackageInfo package) [0x00000] in <filename unknown>:0 …
Run Code Online (Sandbox Code Playgroud)

asp.net macos dnx visual-studio-code dnvm

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

简单的JavaScript代码不起作用:var count = colors.push("red","green");

<html>
    <head></head>
    <body>
        <script>
            var colors = new Array();
            var count = colors.push(“red”, “green”);
            alert(count);
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我在firefox和IE上试过这个,你认为我的JavaScript版本需要更新吗?

javascript

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