RavenDB客户端onlinux使用单声道http连接到Windows服务器

Chr*_*ris 5 mono gzipstream ravendb

我刚尝试使用mono从linux连接到我的RavenDB windows实例.我有一个奇怪的错误,它似乎是单声道相关而不是乌鸦相关.

这是我重新创建的代码(适用于Windows):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Raven.Client.Document;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {

            try
            {
                var store = new DocumentStore()
                                {
                                    ConnectionStringName = "RavenDB",
                                    EnlistInDistributedTransactions = false

                                };
                store.Initialize();

                using (var session = store.OpenSession("system-events"))
                {
                    session.Store(new { Name = "Test" });
                    session.SaveChanges();
                }
                Console.WriteLine("done");
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.ToString());
            }

            Console.ReadKey();


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的单声道版本:

chris@x-ngx4:~/click/beta/Debug$ mono --version
Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-1ubuntu2.2)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            Included Boehm (with typed GC and Parallel Mark)
Run Code Online (Sandbox Code Playgroud)

和错误:

chris@x-ngx4:~/click/beta/Debug$ mono ConsoleApplication2.exe
System.IO.IOException: Internal error (no progress possible) Flush
  at System.IO.Compression.DeflateStream.CheckResult (Int32 result, System.String where) [0x00000] in <filename unknown>:0
  at System.IO.Compression.DeflateStream.Flush () [0x00000] in <filename unknown>:0
  at System.IO.Compression.GZipStream.Flush () [0x00000] in <filename unknown>:0
  at Raven.Abstractions.Connection.HttpRequestHelper.WriteDataToRequest (System.Net.HttpWebRequest req, System.String data, Boolean disableCompression) [0x00000] in <filename unknown>:0
  at Raven.Client.Connection.HttpJsonRequest.Write (System.String data) [0x00000] in <filename unknown>:0
  at Raven.Client.Connection.ServerClient.DirectBatch (IEnumerable`1 commandDatas, System.String operationUrl) [0x00000] in <filename unknown>:0
  at Raven.Client.Connection.ServerClient+<>c__DisplayClass68.<Batch>b__67 (System.String u) [0x00000] in <filename unknown>:0
  at Raven.Client.Connection.ReplicationInformer.TryOperation[BatchResult[]] (System.Func`2 operation, System.String operationUrl, Boolean avoidThrowing, Raven.Abstractions.Data.BatchResult[]& result) [0x00000] in <filename unknown>:0
Run Code Online (Sandbox Code Playgroud)

Mat*_*int 6

我想我找到了. DeflateStream具有对zlib的extern引用.如果查看zlib头文件,您会发现一些注释:

deflate()返回Z_OK如果已经取得了一些进展(处理了更多输入或产生了更多输出),Z_STREAM_END如果所有输入都已被消耗并且所有输出都已生成(仅当flush设置为Z_FINISH时),Z_STREAM_ERROR如果流状态为不一致(例如,如果next_in或next_out是Z_NULL),Z_BUF_ERROR如果无法进展(例如avail_in或avail_out为零). 请注意,Z_BUF_ERROR不是致命的,并且可以使用更多输入和更多输出空间再次调用deflate()以继续压缩.

获得一个消息Internal error (no progress possible)DeflateStream返回的Z_BUF_ERROR- 但是它没有继续,它将其视为一个硬停止.它应该将其视为警告并继续.至少,这是我的解释.

你可以通过单声道支持团队提出这个问题吗?我在那个小组里不活跃.谢谢.