我想从 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 标识中的用户名匹配时才支持该方法。
我使用 Kentico 作为远程服务器“A”上的内容平台,我想从我的本地主机获取 MVC 应用程序的缩略图。
为什么会发生此异常以及我做错了什么?
感谢您的建议!
更新 1:
MediaFileInfo 对象搜索本地主机上的目录,而不是远程服务器上的路径,并认为这是主要问题。
我的应用程序是单独的 MVC 网站,需要从其他域(服务器)获取图像的缩略图。
更新 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:
从磁盘返回图像缩略图,如果尚不存在则创建一个新的。
而且我不知道为什么缩略图为空。它至少应该创建新的缩略图。我现在应该使用@user6043336 提供的解决方案吗?