2015-11-09 53 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不再支持存储过程?

编辑:我在浏览器控制台得到的错误是:

[SqlNullValueException:数据为Null。此方法或属性不能在空值被调用。] System.Data.SqlTypes.SqlBytes.get_Length()2960929 ImageResizer.ImageBuilder.GetStreamFromSource(对象源,ResizeSettings设置,布尔& disposeStream,字符串&路径,布尔& restoreStreamPosition )1156 ImageResizer.ImageBuilder.LoadImage(对象源,ResizeSettings设置,布尔restoreStreamPos)555 ImageResizer.ImageBuilder.BuildJob(ImageJob工作)+243 ImageResizer.ImageBuilder.Build(ImageJob工作)317 ImageResizer.ImageBuilder。 Build(Object source,Object dest,ResizeSettings settings,Boolean disposeSource,Boolean addFileExtension)+177 ImageResizer.ImageBuilder.Build(Object source,Obj ResctSetSettings设置,布尔disposeSource)+36 ImageResizer.ImageBuilder.Build(Object source,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(字符串keyBasis,字符串扩展,ResizeImageDelegate writeCallback, INT32 timeoutMs,布尔异步)545个 ImageResizer.Plugins.DiskCache.DiskCache.Process(IResponseArgs E)125个 ImageResizer.Plugins.DiskCache.DiskCache.Process(HttpContext的上下文中,IResponseArgs E)60 ImageResizer.InterceptModule.CheckRequest_PostAuthorizeRequest(对象发件人,EventArgs e)+449 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+142 System.Web.HttpApplication.ExecuteStep(IExecutionStep s TEP,布尔& completedSynchronously)92

回答

0

queriesAreStoredProcedures配置参数在V4完全支持,尽管该文档没有提到它。

请更具体地说明什么不起作用,以及您收到的特定错误消息和堆栈跟踪。

更新

望着错误消息,看来你查询的行对返回的行空值。考虑到the docs for SqlBytes.Length indicate it should return -1 instead,引发异常是很奇怪的。

我建议使用Sql Server Profiler或IntelliTrace来查看配置已生成的确切SQL命令,并验证第一个结果的第一列实际上是否包含图像字节。

+0

请参阅上面的控制台错误编辑。该图像只是不显示,它在浏览器中显示为破碎的图像。该网站工作正常,我通过nuget更新了i​​mageresizer到v4,现在我得到了这个错误,没有改变我的代码 – Phil

+0

中的其他任何东西,图像是空白的,这就是为什么我也有Image404插件。你是对的,如果我使用的链接实际上有一个图像,它的作品,但对于没有图像的,他们忽略我的'&404 = ...'查询字符串参数。这个改变了吗? – Phil

+0

404行为可以通过[添加另一个条件]来修复(https://ci.appveyor.com/project/imazen/resizer/branch/develop/job/lh0yd9gjpqx60bab)。 –

相关问题