我正在尝试创建一个Azure worker角色来索引Lucene.NET中的文档。
但是,当我创建一个IndexWriter时,它失败了,并出现以下异常:
System.ExecutionEngineException was unhandled
Message: An unhandled exception of type 'System.ExecutionEngineException'
occurred in mscorlib.dll如果我将项目构建为.exe,则一切正常--没有抛出异常。
我的代码:
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);任何想法都将不胜感激。
谢谢。
发布于 2012-06-28 14:23:13
我刚刚使用精确的代码测试了我的worker角色(只使用Standard Analyzer,并且worker角色DLL的创建没有任何问题。如果这可能是使用自定义分析器的问题,请尝试隔离。同样偶然的是,你是否在同一台机器上安装了.net 4.5?
如果你能提供你的工人角色项目,我很乐意看一看,看看有什么问题。
2012年6月28日编辑的
在我的基于SDK1.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); 我认为您的问题可能是特定于计算机的,因为没有错误,并且worker角色运行良好。
发布于 2012-06-29 23:57:06
鉴于blob容器名称应该是小写的http://msdn.microsoft.com/en-us/library/windowsazure/dd135715.aspx。
尝试将目录/索引名称从“”SnowballIndex“”更改为类似于"snowball-index“的名称。
https://stackoverflow.com/questions/11221235
复制相似问题