小编jon*_*iba的帖子

在IIS7上托管WCF的GZip压缩

每个人,就我而言,这个问题都是在EDIT 2中进行的.尽管这只是问题的IIS方面的部分解决方案,但这正是我所寻求的.


因此,我将把我的问题添加到有关该主题的小问题上.

我正在尝试对来自WCF服务的大型soap响应启用GZip压缩.到目前为止,我已经按照这里和其他各种地方的说明在IIS上启用动态压缩.这是applicationHost.config中的dynamicTypes部分:

<dynamicTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="application/atom+xml" enabled="true" />
    <add mimeType="application/xaml+xml" enabled="true" />
    <add mimeType="application/xop+xml" enabled="true" />
    <add mimeType="application/soap+xml" enabled="true" />
    <add mimeType="*/*" enabled="false" />
</dynamicTypes>
Run Code Online (Sandbox Code Playgroud)

并且:

<urlCompression doDynamicCompression="true" doStaticCompression="true" />
Run Code Online (Sandbox Code Playgroud)

虽然我不清楚为什么需要这样做.

为了以防万一,在那里扔了一些额外的哑剧类型.我已经实现了IClientMessageInspector来添加Accept-Encoding:gzip,deflate到我的客户端的HttpRequests.这是一个从fiddler获取的请求标头的示例:

POST http://[omitted]/TestMtomService/TextService.svc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Accept-Encoding: gzip, deflate
Host: [omitted]
Content-Length: 542
Expect: 100-continue
Run Code Online (Sandbox Code Playgroud)

现在,这不起作用.无论消息大小如何(尝试高达1.5Mb),都不会发生压缩.我看过这篇文章,但没有像他描述的那样遇到异常,所以我没有尝试过他提出的CodeProject实现.此外,我已经看到许多其他实现应该让它工作,但无法理解它们(例如,msdn的GZip编码器).为什么我需要实现编码器或代码项目解决方案?IIS不应该负责压缩吗?

那么我需要做些什么才能让它发挥作用?

乔尼

编辑:我认为WCF绑定可能值得发布,但我不确定它们是否相关(这些是来自客户端):

<system.serviceModel>
<bindings>
    <wsHttpBinding>
    <binding name="WsTextBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
      receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" …
Run Code Online (Sandbox Code Playgroud)

wcf iis-7 http-compression

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

监控MongoDB"后台操作"?

编辑:基本上我正在寻找一些关于如何理解我的MongoDB实例上运行的后台操作的提示,并可能在必要时减少/禁用它们,这样它们就不会干扰运行测试.我已经尝试了mongostat,mongotop但没有找到任何与他们相关的东西,这有助于我了解正在运行的后台操作以及启动它们的内容.db.currentOp()在我开始运行测试之前运行时始终返回一个空数组.

我在使用node(mocha,cucumber)开发时经常运行测试.从昨天开始,大约25%的服务器初始化尝试连接到mongodb失败,出现以下错误:

**Unhandled rejection MongoError: exception: cannot perform operation: a background operation is currently running for collection** somecollection
    at Function.MongoError.create (/somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
    at /somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:793:66
    at bound (domain.js:254:14)
    at runBound (domain.js:267:12)
    at Callbacks.emit (.../node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:94:3)
    at null.messageHandler (/somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:235:23)
    at Socket.<anonymous> (/somepath/node_modules/pow-mongodb-fixtures/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:294:20)
    at Socket.emit (events.js:107:17)
    at readableAddChunk (_stream_readable.js:163:16)
    at Socket.Readable.push (_stream_readable.js:126:10)
    at TCP.onread (net.js:538:20)
Run Code Online (Sandbox Code Playgroud)

我们使用pow-mongodb-fixture来清除db并在运行测试之前用一些基本数据填充它,这就是发生这种情况的地方.当这种情况开始发生时,AFAIK并未发生重大变化.有什么想法,我甚至可以开始研究这个错误的来源?

mongodb node.js mongodb-indexes

19
推荐指数
2
解决办法
3288
查看次数

bash:在"select"提示符下按Enter键时选择默认情况

我在这样的bash脚本中提示问题:

optionsAudits=("Yep" "Nope")
    echo "Include audits?"
    select opt in "${optionsAudits[@]}"; do
        case $REPLY in
            1) includeAudits=true; break ;;
            2) includeAudits=false; break ;;
            "\n") echo "You pressed enter"; break ;; # <--- doesn't work
            *) echo "What's that?"; exit;;
        esac
    done
Run Code Online (Sandbox Code Playgroud)

按Enter键时如何选择默认选项?该"\n"案件不赶回车键.

bash user-input interactive

10
推荐指数
2
解决办法
3935
查看次数

WPF:实现和绑定(datagrid)到自定义集合

我有一个自定义集合,我将其传递给WPF客户端,该客户端将集合绑定到datagrid使用AutoGenerateColumns="True".但是,数据网格显示空行(尽管空行数正确).我究竟做错了什么?以下是一些示例代码.现在我已经省略了所有与之相关的内容INotifyPropertyChanged,INotifyCollectionChanged因为我首先想要在网格中显示一些数据.

我还要提一下,我已尝试实现上述两个接口,但它们似乎与此问题无关.

(您可能实际上不想查看示例代码,因为它没有什么有趣的.集合实现只是包装内部List.)

一些随机的POCO:

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

简单的集合实现:

public class MyCollection<T> : IList<T>
{
    private List<T> list = new List<T>();

    public MyCollection()
    {
    }

    public MyCollection(IEnumerable<T> collection)
    {
        list.AddRange(collection);
    }

 #region ICollection<T> Members

    public void Add(T item)
    {
       list.Add(item);
    }

    public void Clear()
    {
       list.Clear();
    }

    public bool Contains(T item)
    {
        return list.Contains(item);
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding collections wpf

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

修改c#中的嵌套结构

有人能告诉我为什么注释的代码行(前一个)不能编译?跟它之后的线不一样吗?

public struct OtherStruct
{
    public int PublicProperty { get; set; }
    public int PublicField;

    public OtherStruct(int propertyValue, int fieldValue)
        : this()
    {
        PublicProperty = propertyValue;
        PublicField = fieldValue;
    }

    public int GetProperty()
    {
        return PublicProperty;
    }
    public void SetProperty(int value)
    {
        PublicProperty = value;
    }
}

public struct SomeStruct
{
    public OtherStruct OtherStruct { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        SomeStruct a = new SomeStruct();
        //a.OtherStruct.PublicProperty++;
        a.OtherStruct.SetProperty(a.OtherStruct.GetProperty() + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# struct

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

通用类型转换

由于泛型问题,我遇到了一些严重的设计问题.也许有人有一些建议.

编辑:所以,我知道这通常不会完成,但我已经完全改变了我的示例代码,因为我已经意识到原始的伪代码并没有真正解释我的问题.以下代码更接近于我正在处理的真实示例.我希望我的问题能更明确.我向前道歉它有点冗长,但根据我的经验,当你试图建立一个更复杂的结构时,通常会出现泛型问题.所以:

class Program
    {
        static void Main(string[] args)
        {
            IConnector<IService> connector = ConnectorBuilderFactory.NewBuilder<IService>("someEndpoint").MakeReliable().GetConnector();
            connector.Connect();
        }
    }

    public interface IService : IConnectionMaintainable
    {
        void DoSomething();
    }

    public interface IConnectionMaintainable
    {
        DateTime GetServerTime();
    }

    public interface IConnector<T>
    {
        T Channel { get; }
        void Connect();
        void Disconnect();
    }

    public interface IConnectorBuilder<T>
    {
        IConnector<T> GetConnector();
        IConnectorBuilder<T> MakeReliable();
        // ...more connector-configuration methods
    }

    public class ChannelWatchDog<T> where T : IConnectionMaintainable
    {
        private IConnector<T> connector;

        public ChannelWatchDog(IConnector<T> connector /*various other parameters*/)
        {
            this.connector = …
Run Code Online (Sandbox Code Playgroud)

.net generics

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

Scala:线程安全的循环迭代器

在 Scala 中创建线程安全的无限循环迭代器的正确方法是什么?似乎以下不是线程安全的(从迭代器上的多个线程同时迭代偶尔会引发异常):

val map = Map(1->"one", 2->"two")
val iterator = Iterator.continually(map).flatten
Run Code Online (Sandbox Code Playgroud)

您将如何纠正它以使其成为线程安全的?

scala

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

具有版本号的Mongoose乐观并发

有没有办法强制mongoose始终在保存时验证文档版本?据我所知,默认行为仅在修改文档中的数组时强制执行版本号.更糟糕的是,即使文档版本不匹配,似乎也允许向数组添加元素,因此,即使您正在修改数组,也需要替换数组以获取版本校验.(请注意,我正在使用的示例使用可能影响行为的无模式子文档(简称为"{}")).除了这篇文章,我找不到任何关于该主题的文档.也许有一个插件可以做到这一点?

mongoose mongodb node.js

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

node.js:依赖项的版本(时刻时区)在运行时发生变化

最后一天,我研究了一个神秘的问题,其中某个moment-timezone功能在特定的、看似任意的情况下无法工作。我发现我的库的运行时版本moment-timezone在某个时刻从版本 0.5.17 更改为 0.5.13。

在添加更多细节之前,这是一个node.js问题还是一个moment-timezone问题?

我最终使用纱线选择性版本分辨率moment-timezone解决了具体问题,但如果这实际上是一个问题,我认为需要采取更极端的措施(纱线安装--平?)。node.js

我不知道哪个依赖项导致版本在运行时发生更改,但这是yarn.lock添加该resolutions部分之前我的文件中的相关部分:

moment-timezone@0.5.17:
  version "0.5.17"
  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.17.tgz#3c8fef32051d84c3af174d91dc52977dcb0ad7e5"
  dependencies:
    moment ">= 2.9.0"

moment-timezone@^0.5.0, moment-timezone@^0.5.4, moment-timezone@~0.5.5:
  version "0.5.13"
  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.13.tgz#99ce5c7d827262eb0f1f702044177f60745d7b90"
  dependencies:
    moment ">= 2.9.0"
Run Code Online (Sandbox Code Playgroud)

如您所见,我的直接依赖项是版本0.5.17,但其他模块的依赖项已解析为版本0.5.13。但我不明白我的依赖关系如何在某个时刻被解析为0.5.13

检查moment-timezone我简单使用的版本moment.tz.version。这意味着在我的生产代码中,以下代码打印0.5.17,直到在某个时刻突然打印0.5.13

const moment = require('moment-timezone');
console.log(`moment.tz.version: ${moment.tz.version}`);
Run Code Online (Sandbox Code Playgroud)

最后一个细节:版本更改为0.5.13时中断的 moment-timezone 函数是版本 0.5.14 中添加的moment.tz函数上的可选标志,在此代码中:

moment(utcDateTime, …

node.js node-modules momentjs yarnpkg moment-timezone

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

Enterprise Architect:您可以从单独的包中生成报告吗?

有没有办法将多个包组合成一个(html)报告?我不想从父包生成报告,因为它包含很多与所需报告无关的信息。我正在寻找一个不需要将单独的包复制/粘贴到新的父包中的答案,主要是因为这迫使我更新各种图表之间的链接并且非常耗时。

enterprise-architect

4
推荐指数
1
解决办法
885
查看次数