Kentico 8.2 でファイルからサムネイルを取得したいので、以下の方法を使用します。
private void ThumbnailTest()
{
var siteInfo = SiteInfoProvider.GetSiteInfo(ConfigUtils.Tribes.SiteId);
MediaLibraryInfo libraryInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(ConfigUtils.Tribes.MediaLibraryID);
string filePath = string.Format(@"D:\\Kentico\{0}\{1}\Homepage\{2}", siteInfo.SiteName, libraryInfo.LibraryFolder, "top_banner_1.jpg");
MediaFileInfo fileInfo = new MediaFileInfo(filePath, libraryInfo.LibraryID, libraryInfo.LibraryFolder); // <-- exception occurs here
var thumbnail = MediaFileInfoProvider.GetImageThumbnail(fileInfo, ConfigUtils.Tribes.MediaLibraryPath, ConfigUtils.Tribes.SiteName);
}
ただし、MediaFileInfoObject の作成中に例外が発生します。
System.Configuration.Provider.ProviderException: メソッドは、ユーザー名パラメーターが現在の Windows ID のユーザー名と一致する場合にのみサポートされます。
リモート サーバー 'A' のコンテンツ プラットフォームとして Kentico を使用しており、ローカルホストから MVC アプリケーションのサムネイルを取得したいと考えています。
なぜこの例外が発生し、何が間違っているのでしょうか?
提案をありがとう!
更新 1:
MediaFileInfo オブジェクトは、localhost のディレクトリを検索しますが、リモート サーバーのパスは検索しないため、これが主な問題であると考えられます。
私のアプリケーションは、他のドメイン (サーバー) から画像のサムネイルを取得する必要がある別の MVC Web サイトです。
更新 2:
private void ThumbnailTest()
{
MediaLibraryInfo libraryInfo = MediaLibraryInfoProvider.GetMediaLibraryInfo(ConfigUtils.Tribes.MediaLibraryID);
var mediaFileInfo = MediaFileInfoProvider.GetMediaFileInfo(libraryInfo.LibraryID, "Homepage/top_banner_1.jpg"); // success here, file found!
var thumbnail = MediaFileInfoProvider.GetImageThumbnail(mediaFileInfo, ConfigUtils.Tribes.MediaLibraryPath, ConfigUtils.Tribes.SiteName, 300, 200, 500); // <-- null occurs here
}
Kentico のドキュメント メソッド GetImageThumbnail によると、私は混乱しています。
ディスクから画像のサムネイルを返すか、まだ存在しない場合は新しいサムネイルを作成します。
そして、サムネイルがnullである理由がわかりません。少なくとも新しいサムネイルを作成する必要があります。@ user6043336 が提供するソリューションを使用する必要がありますか?