我已经使用imageresizer和sqlreader插件几年了,没有任何问题。我刚从版本3.4.3升级到版本4.0.4,现在sqlreader插件似乎无法正常工作。我有一个要点: https://gist.github.com/vishnu4/a859c2599f46998b612a 我能看到的主要内容是我使用存储过程进行SQL调用,您过去常常使用' queriesAreStoredProcedures'参数。查看http://imageresizing.net/docs/v4/plugins/sqlreader上的文档,该参数似乎不再存在。是否有其他方式来支持此功能,还是消失了?
编辑:我在浏览器控制台中遇到的错误是:
[SqlNullValueException:数据为空。无法在Null值上调用此方法或属性。] System.Data.SqlTypes.SqlBytes.get_Length()+ 2960929 ImageResizer.ImageBuilder.GetStreamFromSource(Object source,ResizeSettings settings,Boolean& disposeStream,String& path,Boolean& restoreStreamPosition)+1156 ImageResizer.ImageBuilder.LoadImage(Object source,ResizeSettings settings,Boolean restoreStreamPos)+555 ImageResizer.ImageBuilder.BuildJob(ImageJob job)+243 ImageResizer.ImageBuilder.Build(ImageJob job)+317 ImageResizer.ImageBuilder.Build(Object source,Object dest,ResizeSettings settings,Boolean disposeSource,Boolean addFileExtension)+177 ImageResizer.ImageBuilder.Build(Object source,Object dest,ResizeSettings settings,Boolean disposeSource)+36 ImageResizer.ImageBuilder.Build(Object source,Object dest,ResizeSettings settings)+25 ImageResizer。<> c__DisplayClass5_0。< HandleRequest> b__1(流媒体流)+171 ImageResizer.Plugins.DiskCache。<> c__DisplayClass29_0。< TryWriteFile> b__0()+496 ImageResizer.Plugins.DiskCache.LockProvider.TryExecute(String key,Int32 timeoutMs,LockCallback success)+409 ImageResizer.Plugins.DiskCache.CustomDiskCache.GetCachedFile(String keyBasis,String extension,ResizeImageDelegate writeCallback,Int32 timeoutMs,Boolean asynchronous)+545 ImageResizer.Plugins.DiskCache.DiskCache.Process(IResponseArgs e)+125 ImageResizer.Plugins.DiskCache.DiskCache.Process(HttpContext context,IResponseArgs e)+60 ImageResizer.InterceptModule.CheckRequest_PostAuthorizeRequest(Object sender,EventArgs e)+449 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+ 142 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+92
答案 0 :(得分:0)
V4完全支持queriesAreStoredProcedures
配置参数,尽管文档未提及它。
请更具体地说明哪些不起作用,以及您收到的特定错误消息和堆栈跟踪。
<强>更新强>
查看错误消息,您查询的行似乎对返回的行具有空值。考虑the docs for SqlBytes.Length indicate it should return -1 instead,抛出异常是很奇怪的。
我建议使用Sql Server Profiler或IntelliTrace查看配置生成的确切SQL命令,并验证第一个结果的第一列实际上是否包含图像字节。