繁体   English   中英

在Azure Worker角色中使用Lucene.NET引发未处理的异常

[英]Unhandled exception thrown using Lucene.NET in an Azure Worker Role

我正在尝试创建一个Azure工作者角色,该角色在Lucene.NET中为文档编制索引。

但是,当我创建IndexWriter ,它将失败,并带有以下异常:

System.ExecutionEngineException was unhandled
Message: An unhandled exception of type 'System.ExecutionEngineException'
         occurred in mscorlib.dll

如果我将项目构建为.exe ,则工作正常-不会引发异常。 我正在使用.NET Framework 4.0。

我的代码:

var cloudAccount = CloudStorageAccount.FromConfigurationSetting("LuceneBlobStorage");
var cacheDirectory = new RAMDirectory();
var azureDirectory = new AzureDirectory(
                                cloudAccount,"SnowballIndex", cacheDirectory);
var analyzer = new SnowballAnalyzer("English");

// !-- Exception thrown after this call
this.indexWriter = new IndexWriter(
             azureDirectory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED);

任何想法,将不胜感激。 我在网上搜索,一无所获。

谢谢。

我刚刚用正确的代码对我的辅助角色进行了测试(仅使用Standard Analyzer,并且辅助角色DLL的创建没有任何问题。如果使用自定义分析器可能会引起问题,请尝试隔离一下吗?) .net 4.5安装在同一台机器上?

如果您可以提供您的员工角色项目,我很乐意看一看,看看有什么问题。

编辑06/28/2012

在基于SDK 1.6的辅助角色中,我只安装了Lucene.Net.Store.Azure程序包,然后在OnStart()函数中添加了以下代码,并且没有错误:

StorageCredentialsAccountAndKey creds = new StorageCredentialsAccountAndKey(_azure_storage_name_, _azure_storage_key);
CloudStorageAccount cloudAccount = new CloudStorageAccount(creds, true);
Lucene.Net.Util.Version version = Lucene.Net.Util.Version.LUCENE_29;
var cacheDirectory = new RAMDirectory();
IndexWriter indexWriter = null;
AzureDirectory azureDirectory = new AzureDirectory(cloudAccount, "SnowballIndex", cacheDirectory);
Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29);
indexWriter = new IndexWriter(azureDirectory, analyzer, IndexWriter.MaxFieldLength.UNLIMITED); 

我认为您的问题可能是特定于计算机的,因为没有错误并且工作角色运行正常。

鉴于Blob容器名称应使用小写字母http://msdn.microsoft.com/zh-cn/library/windowsazure/dd135715.aspx

尝试将目录/索引名称从“ SnowballIndex”更改为“ snowball-index”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM