Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET映像未加载,正在使用imageHandler_Asp.net - Fatal编程技术网

ASP.NET映像未加载,正在使用imageHandler

ASP.NET映像未加载,正在使用imageHandler,asp.net,Asp.net,在使用自定义处理程序加载图片时,我遇到了一个非常恼人且奇怪的问题(我们需要在运行时屏蔽图片) 网站,您可以在其中查看: 基础知识:如上所述,我使用自定义图像处理程序在运行时加载和修改图像。这个网站提供不同的旅行,每一次都经常改变(主要是改变价格)。每个酒店都有一组自己的照片,我们在上面放了一个“广告”栏(一个半透明的黑色矩形,还有一些文字)。此处理程序加载图像(一些来自本地服务器,一些来自其他URL源),并在其上绘制所需的文本和图片,然后在响应流上返回图片本身 错误:上面的方法应该可以很好地工作

在使用自定义处理程序加载图片时,我遇到了一个非常恼人且奇怪的问题(我们需要在运行时屏蔽图片)

网站,您可以在其中查看:

基础知识:如上所述,我使用自定义图像处理程序在运行时加载和修改图像。这个网站提供不同的旅行,每一次都经常改变(主要是改变价格)。每个酒店都有一组自己的照片,我们在上面放了一个“广告”栏(一个半透明的黑色矩形,还有一些文字)。此处理程序加载图像(一些来自本地服务器,一些来自其他URL源),并在其上绘制所需的文本和图片,然后在响应流上返回图片本身

错误:上面的方法应该可以很好地工作,但奇怪的是,图片本身有时根本无法加载。(如果你在上面的链接上查看该网站,你可以自己查看——应该有六张图片,在一个红色的蓝色边框内)。当我刷新页面时,图片出现和消失,没有任何(对我来说)逻辑模式

我尽可能地缩小问题的范围

  • imageHandler本身将返回完全相同的图片 时间,不管它是否得到任何URL

  • 问题在于图像框(我认为)。当我说“简单” url(一个没有任何参数的url,即使处理程序没有检查 (如果有任何参数)

  • 当我为ImageBox添加URL时(此 一:)这将给 非常好的图像返回,每个imagebox都将加载,没有任何 错误

  • 当我添加具有相同参数的URL时,它的工作方式与应该的一样 (如:) 这是它应该做的

(现在是错误)当我添加一个带有不同参数的URL时,它会使图片随机弹出,并在每次刷新之间消失(这是你在我上面给你的链接上看到的),如下所示:

但是,当我点击“刷新图像”按钮时,图像显示为它应该显示的样子。当我尝试直接访问GetTestImage.ashx时,它看起来应该是这样的。只有当有更多具有不同URL的图片框时,才会出现加载问题

我只是没有什么想法,无法想象为什么会发生这种情况。我尝试创建最基本的imageHandler(它只需加载图像,创建字节数组,并将其推送到用户的流中)。我尝试了不同的浏览器(Firefox、IE、Chrome)——所有浏览器都给出了相同的错误(或者,没有错误,只是因为图片没有显示)

任何想法都会非常感激

编辑:这是我的imageHandler:

Edit1:我忘了提到它:它在我的本地计算机上运行良好,当我尝试在服务器上运行它时,会出现此错误


Edit2:还更新了处理程序代码,我显示了日志的位置。

将IsReusable属性设置为true以处理多个图像。在我上次查看时,没有关于此的MSDN文档。但这就是我用来显示的,比如说,产品图片列表

public bool IsReusable
{
    get
    {
        return true;
    }
}

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

转到您提供的第一个链接,并使用Chrome Developer Tools Network tab仅过滤图像,它会显示未加载图像的HTTP处理程序的HTTP 500错误。你能发布你的HTTP处理程序的代码吗?顺便说一句,只是想让你知道有以下HTTP 404错误:logo.png,bgMain.jpg和clubcard_bg.pngYep我知道,我只上传了你最需要的思考,看看我的问题是什么,我不想让任何人加载大量不需要的数据。你调试过吗(逐步查看处理程序代码)以查看500错误发生的位置?我无法一步一步地调试它,因为它在我的本地计算机上运行时没有错误,但在服务器端没有错误。(编辑了错误描述).但是我能够在处理程序上创建一个逐步的日志,它正在做什么。下面是:根据日志,它看起来有两个映像根本没有开始加载(在本例中,只有4个映像)我按照你的建议将其更改为True-同样的问题。是否进行完整的页面刷新?它刷新-一些图片加载,一些不加载。有时所有六个加载,有时两个都不加载(最罕见的是,我只遇到过一次,大约500次刷新,我已经完成了)