5

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();


        }
    }
}

そして私のモノバージョン:

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)

そしてエラー:

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
4

1 に答える 1

6

私はそれを見つけたと思います。 DeflateStreamには、zlibへの外部参照があります。zlibヘッダーファイルを見ると、いくつかのコメントがあります。

deflate()は、何らかの進行があった場合(より多くの入力が処理された場合、またはより多くの出力が生成された場合)にZ_OKを返し、すべての入力が消費されてすべての出力が生成された場合(flushがZ_FINISHに設定されている場合のみ)、Z_STREAM_ERRORを返します。一貫性がない(たとえば、next_inまたはnext_outがZ_NULLの場合)、進行が不可能な場合(たとえば、avail_inまたはavail_outがゼロの場合)はZ_BUF_ERROR。 Z_BUF_ERRORは致命的ではなく、圧縮を続行するために、より多くの入力とより多くの出力スペースを使用してdeflate()を再度呼び出すことができることに注意してください。

メッセージは、-を取得したときに返されるInternal error (no progress possible)ものですが、続行されず、ハードストップとして扱われます。警告として扱い、続行する必要があります。少なくとも、それは私の解釈です。DeflateStreamZ_BUF_ERROR

モノサポートチームでこれを上げることができますか?私はそのグループで活動していません。ありがとう。

于 2012-12-13T19:24:51.193 に答える