1

Lucene.NET でドキュメントのインデックスを作成する Azure ワーカー ロールを作成しようとしています。

ただし、を作成する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);

どんなアイデアでも大歓迎です。オンラインで検索しましたが、何も見つかりませんでした。

ありがとう。

4

2 に答える 2

0

ワーカー ロールを正確なコードでテストしたところです (標準アナライザーを使用しただけで、ワーカー ロール DLL は問題なく作成されました。これがカスタム アナライザーを使用した場合の問題であるかどうかを特定してみてください。同じマシンに.net 4.5がインストールされていますか?

ワーカー ロール プロジェクトを提供していただければ、何が問題なのかを確認したいと思います。

2012 年 6 月 28 日編集

私の 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); 

エラーがなく、ワーカーの役割が正常に実行されるため、問題はマシン固有である可能性があると思います。

于 2012-06-28T06:23:12.853 に答える
0

BLOB コンテナー名は小文字のhttp://msdn.microsoft.com/en-us/library/windowsazure/dd135715.aspxにする必要があるとします。

カタログ/インデックス名を「"SnowballIndex"」から「snowball-index」などに変更してみてください。

于 2012-06-29T15:57:05.997 に答える