使用 HttpHandler 流式传输数据库图像

2024-04-19

很长一段时间以来,当我在本地计算机上处​​理涉及数据库图像的 Web 应用程序项目时,我注意到一些烦人的事情。我所说的本地是指我的工作站上装有 VS 2008 和 SQL Server 2005 的典型环境。每当我使用 HttpHandler 在本地显示图像时,每个页面加载时只会呈现部分图像。

但是,当我将应用程序推送到托管环境时,问题通常会消失。但是,我刚刚将一个新项目推送到托管环境,并遇到了与本地环境相同的问题 - 这次站点和数据库位于托管环境中的同一台服务器上。有人了解这里发生的事情吗?

这是处理程序:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class FeaturedHandler : IHttpHandler
{
    Business biz = new Business();

    public void ProcessRequest(HttpContext context)
    {
        if (context.Request.QueryString["ListingID"] != null)
        {
            int listingID = Convert.ToInt32(context.Request.QueryString["ListingID"]);

            DataSet ds = biz.GetFeaturedImageByID(listingID);
            DataRow row = ds.Tables[0].Rows[0];
            byte[] featureImage = (byte[])row["Photo"];
            context.Response.ContentType = "image/jpeg";
            context.Response.OutputStream.Write(featureImage, 0, featureImage.Length);
        }
        else
            throw new ArgumentException("No ListingID parameter specified");
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
} 

我尝试过在单独的服务器上使用数据库,但遇到了同样的问题。我应该使用 DataReader 吗?

UPDATE因为我正在读取二进制数据,所以最初我应该使用 DataReader。


我终于通过更改的值来渲染所有图像可重复使用财产给true:

    public bool IsReusable
    {
        get
        {
            return true;
        }
    }

显然,这将处理程序保留在内存中并能够处理多个请求。当设置为 false 时,它​​必须为每个传入请求创建一个新的处理程序实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 HttpHandler 流式传输数据库图像 的相关文章

  • 在 azure Devops 管道中部署 SQL 时遇到错误

    我在 azure Devops 的发布管道中使用 sql DACPAC 类型的部署 但出现以下错误 我对 SQL 不了解 有什么建议吗 Publishing to database database name on server Serve
  • 如何完全禁用签名程序集?

    我有一个包含多个项目的 VS NET 2010 解决方案 我刚刚添加了一个新的库项目 the library assembly 启动项目是一个网站 当我运行该网站时 出现以下错误 无法加载文件或程序集 the library assembl
  • 如果使用 jQuery 隐藏了 ASP:Button,我无法单击该按钮?

    我发现 StackOverFlow 答案和其他资源说您可以通过 jQuery 单击隐藏的 ASP Button click or trigger click 然而 这些都不适合我 除非按钮是 Visible true 这是按钮
  • 必填字段验证器在下拉列表回发时消失

    我在 asp net 中填充两个下拉列表 两者都分配给必填字段验证器 隐藏代码如下 if Page IsPostBack DataTable dt new DataTable dt Columns Add emp dt Columns Ad
  • sql server 2008 对 exec 语句的限制

    我只需要仔细检查 t sql 中的 EXEC 命令是否有字符限制 如果我有一个带有 varchar max 的变量并使用 EXEC 执行命令 你认为这样可以吗 thanks 应该没问题 根据这篇 MSDN 文章 http msdn micr
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • SQL Server 大小写/排序规则问题

    今天我在客户数据库中遇到了一个奇怪的情况 SQL Server 2005 数据库排序规则不区分大小写 因此我可以使用任何大小写编写 SQL 查询 没有任何问题 除了一个 一张特定表中的一个特定列称为 DeadZone 如果我这样查询 从表名
  • UpdatePanel 更新时 ASP 页面滚动到顶部

    我遇到一个问题 我有一个 UpdatePanel 它使用计时器来触发用新点更新 ASP 图表 本质上是位于https web archive org web 20201205213920 https www 4guysfromrolla c
  • SQL Server Like 查询不区分大小写

    Query SELECT from Table 2 WHERE name like Joe Output 1 100 Joe 2 200 JOE 3 300 jOE 4 400 joe 为什么不区分大小写 Problem 查询不区分大小写
  • asp.net 视图状态加密

    我有几个关于何时以及如何在 ASP NET 3 5 中加密视图状态的问题 例如 如果我的 web config 中有一个机器密钥条目 例如 解密Key 自动生成 IsolateApps 验证 AES 解密 自动 gt 此时视图状态是否已加密
  • OWIN 可以替代 ASP.NET MVC 应用程序中的 DI 吗?

    大约一年前 在 Visual Studio 中创建时自动生成的 MVC 项目不包含任何有关 OWIN 的内容 作为再次申请并试图了解这些变化的人 我想知道 OWIN 是否可以替代我的 DI 据我了解 Startup Auth cs 中的以下
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 如何使用 SQL 通过表示多级订单的 varchar 字段正确排序?

    我不太喜欢数据库 我发现在查询上出现以下问题SQL服务器数据库旧的遗留应用程序的 我声明不幸的是我无法更改数据库结构 字段类型 这非常难看 我有以下情况 SELECT Sottocategoria IdSottocategoria IdCa
  • 如何在静态方法中获取会话变量的值?

    我正在使用带有 jQ uery 的 ASP NET 页面方法 如何在 C 中的静态方法中获取会话变量的值 protected void Page Load object sender EventArgs e Session UserName
  • 使用条件 SQL 统计每月汇总记录

    我有一张桌子 我们就叫他们桌子吧SUMMARYDATA NIP NAME DEPARTMENT STATUSIN STATUSOUT TOTALLOSTTIME A1 ARIA BB 2020 01 21 08 06 23 2020 01
  • 当路径长度超过 260 个字符时 System.IO.DirectoryNotFoundException [重复]

    这个问题在这里已经有答案了 我有 ASP NET Core MVC 项目 针对 NET 4 62 我正在尝试保存文件 当路径长度低于 260 或 248 我不确定 时 一切正常 但是当路径长度更长时 我会得到一个System IO Dire
  • 如何在c#中生成8字节GUID值? [复制]

    这个问题在这里已经有答案了 可能的重复 如何从 GUID 生成 8 字节唯一 ID https stackoverflow com questions 5678177 how to generate 8 bytes unique id fr
  • 使用 MS Access 链接表连接到 SQL Server 后端时是否可能发生 SQL 注入

    我一直在对此进行一些研究 但到目前为止还是一片空白 情况是这样的 我正在开发一个链接到 SQL Server 后端的 MS Access 前端 我在某种程度上使用 Access 中的链接表 表单访问 SQL DB 这样 当用户更新表单中的值
  • SQL Server - 将行连接到逗号分隔的列表中

    假设我有一个临时表 如下所示 Id Value 1 1 1 2 1 3 2 1 2 2 我希望我的桌子是这样的 Id ValueList 1 1 2 3 2 1 2 所以基本上我需要将我的值分组为逗号分隔的列表 我已经尝试过以下操作 SEL
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • 3D 游戏的 Libgdx 渲染层

    在我的第一个 3D 游戏中 我现在想要渲染地板 它实际上是一个平面 不是 libgdxPlane on y 0 我想添加一个Texture到它 这样我就可以在每个级别有不同的楼层 现在我的问题是 创建和渲染这种纹理地板的最佳方法是什么 我考
  • django 应用程序的 Heroku 推送获取“没有名为 psycopg2.extensions 的模块”

    我正在尝试将 django 应用程序推送到 heroku 并收到一个我在 heroku 或 stackoverflow 论坛中从未见过的错误 我正在使用 postgres 我不知道该从哪里开始 我在任何文档中都没有看到任何说明问题的内容 主
  • 在 TeamCity 构建期间将 nuget 包发布到 Octopus

    有一个已知问题 如果您在 TeamCity 构建期间进行部署 则会部署以前的版本 因为当前版本仅在构建完成后才可用 文档建议创建辅助 TeamCity BuildConfiguration 作为解决方法 但它很糟糕并且似乎不再起作用 有许多
  • 在 AngularJS 中的控制器之间共享数据

    我使用以下工厂从 API 获取数据并将其存储到名为 apiData 的本地变量中 app factory MyFactory function resource q var apiData var service var resource
  • android 清除字符串中的值

    我有一个应用程序 可以让您单击按钮从起始值 20 中添加和减去 5 或 5 以及 1 或 1 我对其进行了设置 这样当单击按钮时 它将将该值放入字符串并显示它 以便用户可以看到他们按下的内容的历史记录 我有一个名为 Reset 的方法 将起
  • 如何在 Android 中播放 GIF

    Hello stackoverflow我正在尝试开发一个 Android 应用程序来玩我自己的GIF 这是代码片段 MainActivity java public class MainActivity extends Activity O
  • 为什么 std::setbase(2) 不切换到二进制输出?

    cppreference 页面位于std setbase http en cppreference com w cpp io manip setbase says 除 8 10 或 16 之外的基值会将基域重置为零 这对应于十进制输出和依赖
  • 如何检查所有返回值是否均为 true?

    有没有一种简单的方法来确保所有返回的值都是 True 在下面的示例中 我有一个代表文件的对象集合 我想在继续之前确保所有源文件都存在 我将所有路径传递给 Test Path 该函数为每个文件返回 True False gt filesToU
  • 如何使用 NSJSONSerialization 类参考读取 JSON 文件?

    我需要使用 NSJSONSerialization 类参考来读取 JSON 文件 并且我找到的有关使用此类的所有示例都是从网页本身读取内容 而不是从之前创建的 JSON 文件中读取内容 任何人都知道如何使用该类解析 JSON 文件 谢谢 简
  • 如何在没有机器人的情况下使用 Telegram API?

    我不需要回复机器人 我只想进行只读调用来读取频道历史记录 也许我需要 该方法https core telegram org method messages getHistory https core telegram org method
  • jQuery ajax 处理 401 未经授权

    我正在使用 jQuery ajax 调用第三方网页 根据他们的页面 如果登录成功 他们向我发送状态代码 200 如果登录不成功 他们向我发送状态代码 401 这是我的 jquery 代码示例 此代码在 IE 上运行良好 但在 Chrome
  • Chrome 不断加载我网站的旧缓存

    我遇到了这个奇怪的问题 我的 Chrome 浏览器不断加载旧版本的网站 其代码甚至不再存在于我的服务器上 我认为这是一个典型的缓存问题 我尝试清理浏览器缓存 使用隐身模式并清除 DNS 缓存 旧的缓存页面仍在加载 这个问题似乎已经在这个谷歌
  • 无法向分组数据框添加行

    这是这个问题的后续问题如何将行添加到数据框中仅修改某些列 https stackoverflow com questions 71095723 how to add a row to a dataframe modifying only s
  • IOException:错误=7,参数列表太长,命令行很大

    我需要从 Java 调用 Unix 命令 代码如下 String strCmd iconv f strSrcEncoding t strTgtEncoding lt lt lt InputMessage String commands ba
  • android viewpager 更改适配器

    我正在开发一个带有 ViewPager 的应用程序 用于横向滚动表 有时我需要更改适配器以加载一组不同的表 我尝试执行以下操作 mViewPager setAdapter new pagerAdapterPushed getSupportF
  • 如何存储查询执行计划以便以后使用

    我的应用程序对 SQL Server 数据库运行查询 在许多情况下 我可以看到执行计划的好处 例如 我第一次单击按钮 SELECT from Tasks WHERE IdUser 24 AND DATE lt 12 12 2010 and
  • didUpdateToLocation 未调用

    我想接收位置更新 我已将位置委托添加到标头 interface AppDelegate UIResponder
  • Python约束非线性优化

    python 中约束非线性优化的推荐包是什么 我试图解决的具体问题是 我有一个不为人知的X Nx1 我有M Nx1 u向量和M NxN s矩阵 max 5th percentile of ui T X i in 1 to M st 0 lt
  • 将数据更新到插入正确行的数据库中

    我在将数据更新到数据库时遇到问题 当我运行代码时 它将输入以3061 to 3070它应该从哪个开始3001 to 3010 当我尝试这个时 for next day program id in zip nextday list progr
  • 使用 HttpHandler 流式传输数据库图像

    很长一段时间以来 当我在本地计算机上处 理涉及数据库图像的 Web 应用程序项目时 我注意到一些烦人的事情 我所说的本地是指我的工作站上装有 VS 2008 和 SQL Server 2005 的典型环境 每当我使用 HttpHandler