c# - ASHX 呈现为损坏的图像

标签 c# asp.net ashx

我遇到了一个关于呈现验证码图像的 ASHX 处理程序的真正令人烦恼的问题。真正让人头疼的是,它在两个月前还运行良好,而当我今天再次使用它时,它就停止工作了。

我得到的是一个经常抛出验证码的页面。这是来自挑战示例的标记:

<img class="challengedtl" src="Challenge.ashx?tkn=0057ea27-4d35-4850-9c6f-7a6fdc9818e2"/>

GUID 引用 SQL 表中的记录,其中包含验证码的实际内容以及验证码质询的状态,即是否已处理,如果已处理,用户是否正确等。

在找到此标记的页面上,图像显示为损坏的 jpeg。当我在 ASHX ProcessRequest() 方法中放置一个断点时,我可以看到 ASHX 从未被调用。

当我从 source 属性中取出 URL 并直接从浏览器的地址栏运行它时,我在 ProcessRequest 中设置了断点并且捕获图像呈现得很好。

我不认为我的 ASHX 代码是问题所在,因为当我直接调用它时它会起作用。问题似乎在于为什么 ASHX 没有被主页调用。鉴于这在 2 月工作,我无法解释发生了什么。

我知道从那以后我的机器出了点问题。我怀疑某个 Windows 更新或服务包。这样做的原因是我的验证码处理包括跟踪调用者的 IP 地址。回到这个工作时,我的本地主机被注册为 127.0.0.1 (IPv4),但现在它被注册为::1 (IPv6)。可能是一条红鲱鱼。

有谁知道可能导致此问题的原因,或者您对如何解决此问题有任何建议吗?

最佳答案

处理程序是否与包含您上面发布的 html 的页面位于同一文件夹中?

关于c# - ASHX 呈现为损坏的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622364/

相关文章:

c# - 在 C# 中使单个语句异步的最简单方法?

asp.net - 如何授予 .ASHX 对 ConfigurationManager.ConnectionStrings 的访问权限?

ASP.NET - 将 JSON 从 jQuery 传递到 ASHX

c# - StringBuilder 中的 system.outofmemoryexception

c# - 通过 COM 对象的反射获取属性名称

asp.net - "DataView is not marked as serializable in System.data"是什么意思?

c# - window.external有什么用?

c# - context.Request.Files 从 jQueryFileUpload 返回 null

c# - session变量问题c#

c# - 当我只有枚举的类型时,如何获取枚举的整数值