わかりました、私もこの問題を抱えていましたが、修正しました。根底にある問題は、オーチャード データベースに、もはや存在しないメディア ファイルのレコードがあったことです。これは、Azure ストレージを使用するようにプロジェクトを変更したばかりで、データベースがまだローカル ハード ドライブの他の領域にあったイメージを指していたためです。(Orchard は、パブリック URL を取得しようとしているときに、BLOB が実際に存在するかどうかを確認するメソッドをヒットし、存在しない場合は例外をスローしました。)
私はそれを修正するために2つのことをしました。まず、データベースから古い画像への参照をすべて削除しました。果樹園データベースのテーブル [Orchard_MediaLibrary_MediaPartRecord] には、すべてのファイル名があります。そこで、存在しないことがわかっているファイルへの参照があるかどうかを確認できます。
次に、複数の開発者が CMS に取り組んでいますが、中央データベースを使用しているため、ローカルの Azure ファイル システムにイメージを追加したときに、後で再び壊れるのではないかと心配していました。最終的に AzureFileSystem.cs ファイルに移動し、BLOB が見つからない場合に例外をスローする代わりに、空白の文字列を返すように変更しました。
297 行目と 298 行目を次のように変更しました。
try
{
Container.EnsureBlobExists(String.Concat(_root, path));
return Container.GetBlockBlobReference(String.Concat(_root, path)).Uri.ToString();
}
catch
{
return "";
}
画像が見つからなくても、見つけられる画像が表示されるようになりました。
お役に立てれば。Azure を介して何かを実行していない場合でも、存在する必要のないエントリをデータベースから削除できる場合があります。