Lucene.NET处于中等信任状态

时间:2009-12-03 01:48:58

标签: .net asp.net lucene lucene.net medium-trust

如何在中等信任环境中运行Lucene.NET 2.3.2? GoDaddy不喜欢它。

3 个答案:

答案 0 :(得分:1)

它应该工作。 Lucene.NET was made compatible在提交788091788092中具有中等信任环境,进入2.3.2版本。您可以通过查看2.3.2 tag与您最喜欢的Subversion客户的历史记录来验证这一点。

答案 1 :(得分:1)

我最近一直在努力解决这个问题,并希望用我开始工作的解决方案来更新它。我下载了最新代码并自行构建,以便我可以根据需要进行更改。在SupportClass.cs文件中,从第481行开始,有一些代码用于验证是否使用非托管代码刷新了文件缓冲区。

        if (OS.IsWindows)
        {
            if (!FlushFileBuffers(fileStream.Handle))
                throw new System.IO.IOException();
        }
        else if (OS.IsUnix)
        {
            if (fsync(fileStream.Handle) != IntPtr.Zero)
            throw new System.IO.IOException();
        }
        else
        {
            throw new NotImplementedException();
        }

我注释掉了这些线并重建了库,并且能够以中等信任的方式运行。我以中等信任的方式在本地运行,并将一个简单的测试应用程序部署到GoDaddy。我不确定删除这些行的含义是什么。它们似乎重复了此块之前的fileStream.Flush()调用的行为,但我不确定。

答案 2 :(得分:0)

我刚刚在lucene用户群中发布了此问题,建议您使用以下内容: -

public static void Sync(System.IO.FileStream fileStream)
{
  if (fileStream == null)
    throw new ArgumentNullException("fileStream");

  //Will only compile with .net 4.0
  fileStream.Flush(true);
}
  来自用户组电子邮件的

引用: -

     

然而,当时,Lucene.NET是   建立在.NET 2.0(IIRC)上并没有   有权访问过载   用于的冲洗方法   保证一切都被冲到了   盘:

     

http://web.archiveorange.com/archive/v/3k9XU33O4yJyW15fWfMd#MhNDlmKgnUj5fOj

     

由于您现在在.NET 4.0中工作,   你应该能够取代   以上SupportClass.cs中的代码