【发布时间】:2015-09-28 07:13:03
【问题描述】:
我正在尝试将图像转换为字节数组,但它会使应用程序崩溃。
错误是这样的:
反序列化对象时出错。读取 XML 数据时已超出最大数组长度配额 (16384)。可以通过更改创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象的 MaxArrayLength 属性来增加此配额
这是我的代码:
if (dr["Photo"] != DBNull.Value)
{
rider.Photo = (byte[])dr["Photo"];
}
有没有更好的方法来做到这一点?有用的东西?
编辑:所以,我认为这与图像尺寸太大而无法通过网络服务有关。我编辑了 webconfig 文件并更改了 ReaderQuotes 标记值,如下所示:
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
即使这样,输出也是一样的。
【问题讨论】:
-
您的错误消息是关于 XML 而不是 SQL。请显示异常所指的代码。
-
应用程序在我将照片转换为字节数组的那一行崩溃了。
-
我真的不相信您显示的错误消息与代码相关联。我假设
dr是某种类型的 SQLDataReader。 -
我在 web.config 文件中编辑了 MaxArrayLength 属性。放一个像 maxArrayLength="2147483647" 这样的大数字。但它仍然崩溃。我应该提到的一件事是它是一个 wcf 应用程序。
标签: c# sql sql-server image sqlcommand