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)
我想我找到了. 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- 但是它没有继续,它将其视为一个硬停止.它应该将其视为警告并继续.至少,这是我的解释.
你可以通过单声道支持团队提出这个问题吗?我在那个小组里不活跃.谢谢.
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |