2015-11-09 6 views
0

Я использую imageresizer и плагин sqlreader уже несколько лет без проблем. Я просто обновился с версии 3.4.3 до версии 4.0.4, и теперь плагин sqlreader не работает. У меня есть сущность: https://gist.github.com/vishnu4/a859c2599f46998b612a Главное, что я вижу, это то, что я использовал хранимые процедуры для своих SQL-вызовов, которые вы использовали для поддержки с использованием параметра queriesAreStoredProcedures. Рассматривая вашу документацию по адресу http://imageresizing.net/docs/v4/plugins/sqlreader, этот параметр больше не существует. Есть ли другой способ поддержать эту функциональность, или она исчезла?imageresizer sqlreader больше не поддерживает хранимые процедуры?

Edit: Я получаю ошибку в консоли браузера:

[SqlNullValueException: Данные Null. Этот метод или свойство не может быть вызван на нулевые значения.] System.Data.SqlTypes.SqlBytes.get_Length() +2960929 ImageResizer.ImageBuilder.GetStreamFromSource (источник объекта, ResizeSettings настройки, Boolean & disposeStream, String & путь, булева & restoreStreamPosition) +1156 ImageResizer.ImageBuilder.LoadImage (источник объекта, параметры ResizeSettings, Boolean restoreStreamPos) +555 ImageResizer.ImageBuilder.BuildJob (ImageJob работа) +243 ImageResizer.ImageBuilder.Build (ImageJob работа) +317 ImageResizer.ImageBuilder. Build (Объект источника, Object dest, ResizeSettings, Boolean disposeSource, Boolean addFileExtension) +177 ImageResizer.ImageBuilder.Build (Object source, Obj ect dest, ResizeSettings, Boolean disposeSource) +36 ImageResizer.ImageBuilder.Build (Объект источника, Object dest, ResizeSettings) +25 ImageResizer. < > c__DisplayClass5_0. <HandleRequest> b__1 (Stream stream) +171 ImageResizer.Plugins.DiskCache. < > c__DisplayClass29_0. <TryWriteFile> b__0() +496 ImageResizer.Plugins.DiskCache.LockProvider.TryExecute (ключ String, Int32 timeoutMs, LockCallback успеха) +409 ImageResizer.Plugins.DiskCache.CustomDiskCache.GetCachedFile (String keyBasis, расширение String, ResizeImageDelegate writeCallback, Int32 timeoutMs, булева асинхронные) +545 ImageResizer.Plugins.DiskCache.DiskCache.Process (IResponseArgs е) +125 ImageResizer.Plugins.DiskCache.DiskCache.Process (HttpContext контекст, IResponseArgs е): +60 ( ImageResizer.InterceptModule.CheckRequest_PostAuthorizeRequest Объект отправителя, EventArgs e) +449 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +142 System.Web.HttpApplication.ExecuteStep (IExecutionStep s ТЭФ, булева & completedSynchronously) +92

ответ

0

queriesAreStoredProcedures параметр конфигурации полностью поддерживается в V4, хотя документы не упомянуть его.

Просьба уточнить, что не работает, и конкретное сообщение об ошибке и трассировку стека, которые вы получаете.

Update

Глядя на сообщение об ошибке, то кажется, что строка вы запрашивая имеет нулевое значение для строки, которая возвращается. Странно, что исключение вызывается, учитывая the docs for SqlBytes.Length indicate it should return -1 instead.

Я предлагаю использовать Sql Server Profiler или IntelliTrace для просмотра точной команды SQL, созданной вашей конфигурацией, и проверки того, что первый столбец первого результата фактически содержит байты изображения.

+0

см. Приведенное выше изменение для ошибки консоли. Изображение просто не отображается, оно отображается в браузере как сломанное изображение. Сайт работал отлично, я обновил imageresizer с помощью nuget до v4, и теперь я получаю эту ошибку без изменения чего-либо еще в моем коде – Phil

+0

, что изображение пустым, поэтому у меня есть плагин Image404. Вы правы, если я использую ссылку, которая действительно имеет изображение, она работает, но для тех, у которых нет изображения, они игнорируют параметр строки запроса «& 404 = ...». Изменилось ли это использование? – Phil

+0

Поведение 404 может быть исправлено с помощью [добавления другого условного] (https://ci.appveyor.com/project/imazen/resizer/branch/develop/job/lh0yd9gjpqx60bab). –

Смежные вопросы