问题标签 [ihttphandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
918 浏览

asp.net - 如何让自定义 IHttpHandler 能够处理回发?

我正在编写一个自定义 HTTP 处理程序,以使用现有用户控件为网格提供编辑表单。基本上,我的处理程序创建了能够正确呈现现有用户控件所需的页面、表单、标题和其他控件,并且在 ProcessRequest 结束时,我使用 Server.Execute 来执行动态创建的页面。我这样做是因为它所在的解决方案是一个用户控件项目,并且没有页面,我们也不能添加任何页面。这需要可重复用于多个项目。

在添加到此“页面”的用户控件需要使用回发机制之前,这非常有效。在用户控件中,Page.IsPostBack 始终为 false,并且不处理控件事件(如按钮单击)。很明显,我在典型的 ASP.NET 页面的工作方式中遗漏了一些关键部分。Page 类只是 IHttpHandler 的一个实现,但我认为有很多代码不需要让基本功能在这里工作。

有任何想法吗?

这是我的基本 HTTP 处理程序的基本代码。我有其他类从这个基本处理程序继承来将实际的用户控件添加到页面的表单中。

0 投票
2 回答
7944 浏览

asp.net - 使用 ASP.NET 流式传输(并转换?)多页 TIFF

我在 .NET 中构建了一个简单的图像查看器,并且需要在浏览器中显示多帧 TIFF 图像。目前,我有一个(ashx)处理程序设置来流回与多帧 TIFF 混合在同一个数据库中的 JPEG,值得一提的是,该处理程序还将返回 TIFF 文件的第一帧在其当前状态. 在下面的 VB.NET 代码(处理程序的一部分)中,我能够确定 TIFF 文件是否有多个帧,我开始尝试将这些帧拼接在一起,但还没有成功。有没有人使用类似的方法返回多帧 TIFF?注意:我在开发下面的代码时使用了如何打开多帧 TIFF 图像作为参考。

下面是 GetPhoto 函数的代码:

是否可以将多帧 TIFF 的每一帧放在连续图像中并将其发送回浏览器?我是否应该集中精力将多帧 TIFF 转换为另一种格式,例如 PDF?我基本上没有购买转换包的预算......任何帮助或指导将不胜感激!

0 投票
2 回答
3741 浏览

asp.net - 为什么我的 IHttpHandler 没有被调用?

我正在尝试让自定义处理程序适用于 ASP.NET 3.5 中的特定 URL(或 URL 集)。

处理程序实际上并没有做任何重要的事情——它只是记录请求。如果有人认为它是相关的,我可以发布代码,但我真的不认为它被调用了。(特别是,对于正常异常,我会得到一个自定义错误页面和日志记录......这里我只是得到香草 IIS 404。)

这是文件的相关位web.config

(显然该部分中还有其他内容,但我认为这无关紧要。)

在本地,在开发服务器下运行,它工作正常。在我的真实盒子上,我总是得到一个 404。网站目录本身下的所有内容都是相同的(通过 svn 复制)。这包括包含 的bin目录CSharpInDepth.dll,我已验证该目录包含CSharpInDepth.Wave.RobotHandler

我尝试获取http://csharpindepth.com/foo.robot并获得 404。

我已经尝试过使用和不使用程序集名称、特定 URL 或通配符......没有任何效果。

我确定我只是在 IIS 配置中的某个地方错过了一些简单的标志,但如果我能找到它,我会感到震惊......

编辑:这是 IIS 版本 6。现在正在尝试将 *.robot 添加到 ISAPI 过滤器中......

0 投票
4 回答
690 浏览

asp.net - ASP.NET 开发服务器不愿意升级到 .NET 3.5

我有一个 ASP.NET 2.0 Web 项目。工作得很好。我决定将网站升级到 3.5。升级工作正常。我添加了一个 IHttpHandler,需要在 web.config 中包含以下行:

web.config 中的这一行生成以下错误:“解析器错误消息:无法加载类型'MyClass'。 ”这听起来像是类名中的典型拼写错误。但看起来不是,我检查了 1000 次。然而,真正奇怪的是,“黄屏死机”页面的底部写着:

版本信息:Microsoft .NET Framework 版本:2.0.50727.3082;ASP.NET 版本:2.0.50727.3082

这真的很奇怪。该项目设置为3.5。唯一使用 3.5 特性的代码是 IHttpHandler 实现。如果我从 web.config 中排除该行,则该 Web 项目的所有其余部分都与 2.0 兼容并且可以正常工作。为什么是这样?

[我没有尝试使用 IIS。我使用 ASP.NET 开发服务器。]

[编辑] 我必须道歉,这是我在第一轮中预期的愚蠢的拼写问题。我的 IHttpHandler 实现在一个嵌套类中,正确的类名是“OuterClass+NestedClass”与我在配置文件中使用的 OuterClass.NestedClass。但是,我要感谢所有做出贡献的人,因为我在 CLR 版本控制方面学到了新东西!

0 投票
1 回答
455 浏览

asp.net - JS中调用handler获取上传文件进度

我有一个带有嵌入式 iframe 的表单,它指向一个 upload.aspx。在 iframe 中发生的上传期间,我试图通过实现我自己的 HttpHandler 来获取上传进度,但是,在上传完成之前,请求被阻止。

我可以在 web.config 中更改请求限制吗?这甚至是问题吗?

谢谢

0 投票
1 回答
212 浏览

css - 如何在httpHandler中查找请求是针对js还是css

有什么方法可以在 httphandler 中查找特定请求是针对 JS 还是 CSS

为了提高我网站的性能,我使用了来自 Code Project http://www.codeproject.com/KB/aspnet/httpcompression.aspx?msg=2544100的 HttpCompress

但由于它结合了所有的 js,它在很多地方都破坏了我的 javascript……所以我想写一个 httphandler,这样我就可以提供 js 和 css 压缩了。(我已经使用 YUICompressor 缩小了它们)。我知道这会导致多个 http 请求,但在我的情况下,我有一个截止日期,所以不想结合 javascripts 和 css。

所以有什么办法吗??????

我也在压缩模块的源代码中看到他们检查文件是否已经在浏览器上并发送一个304 Not Modified 响应头,但这对我来说有点混乱,所以任何人都可以分解它如何继续如果我也想做同样的事情......

我不想要完整的答案,只是简单的指针就可以了......

多谢

PS 我在共享主机上,无法访问 IIS

0 投票
2 回答
199 浏览

asp.net - 如何使用图像处理程序不受图像大小的限制

我正在将文本转换为图像。有些文本的长度比其他文本长。
如何确保没有任何文本被截断?

下面的代码将我的位图限制为 250、30。

我在关注这个例子:如何将电子邮件地址或其他文本形式的文本框转换为图像

更新

我发现这篇文章有助于完成我的任务:Generate Image from text using C# OR Convert Text in to Image using C#

在我能够根据文本长度调整图像大小后,我发现我需要在文本中引入换行符,否则当文本是几句话时,图像会一直到 Timbuktu。
如何在长文本中引入换行符?

0 投票
1 回答
281 浏览

iis-7 - IHttpAsyncHandler 导致 UnathorizedAccessException

在我圣诞节假期的最后几天,当我尝试通过我的 ASP.NET 应用程序使用 IHttpAsyncHandler 的实现和 IRequiresSessionState 来读取远程共享上的 XML 文件时,我一直在与 UnathorizedAccessException 作斗争。

经过很多头痛,并得出结论认为处理程序之外的代码完美无缺(请参阅:访问权限),我认为这可能是一些线程问题,所以我将 IHttpAsyncHandler 更改为 IHttpHandler,问题就消失了。

在这里困扰我的是,出于测试目的,我实际上并没有使用 IHttpAsyncHandler 实现(因此,我没有使用 BeginProcessRequest 和 EndProcessRequest - 只有同步版本,ProcessRequest。

任何人都可以尝试解释手头的问题吗?

异步使用处理程序有一些好处,因为我可以预先缓存要稍后在应用程序中传递的值,但要让它工作,我必须通过似乎只在实现 IHttpAsyncHandler 时才出现的安全问题.

提前感谢您的帮助 - 祝您节日快乐 :-)

0 投票
1 回答
204 浏览

ihttphandler - 使用 IHttpHandler 和 webservice 的区别

我需要了解这两种实现何时使用。使用一个而不是另一个的动机是什么,这些可以互换使用吗?

提前致谢

0 投票
1 回答
1800 浏览

.net - Firefox 在使用 IHttpHandler 时无法正确处理内容类型

Firefox 出于某种原因无法正确处理通过我的 .NET HTTP 处理程序发送的内容;它似乎不尊重内容类型标头。相反,它将内容视为 HTML。映射到请求的 URL 甚至具有 .csv 扩展名。Internet Explorer 和 Chrome 正在做正确的事情。“text/css”和“application/pdf”处理程序都出现了问题。

这是我的 HTTP 处理程序的 ProcessRequest 方法的片段:

我的回复中缺少什么可以使 Firefox 能够按预期识别内容类型?

编辑1:

当使用 Firefox Live HTTP Headers 扩展时,我看到,我得到了以下标题。看起来我的 ContentType 标头丢失了。

编辑 2

发现问题。在我的处理程序中,我使用context.Server.Execute从 ASPX 模板生成 HTML,然后处理该 HTML。换句话说,我没有使用context. Server.Execute直接输出到响应。尽管如此,运行该方法会修改当前上下文的响应标头。所以这是撤消我设置的标题。将修改标题的代码移至context.Server.Execute解决问题后。

这只影响 Firefox 的原因是其他浏览器使用文件扩展名而不是内容类型。Firefox 做了正确的事。