问题标签 [httphandler]

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 投票
5 回答
4897 浏览

c# - 在 IIS7 中将表单发布到 404 + HttpHandler:为什么所有 POST 数据都丢失了?

好的,这听起来可能有点混乱和复杂,所以请耐心等待。

我们编写了一个框架,允许我们定义友好的 URL。如果您浏览任意 URL,IIS 会尝试显示 404 错误(或者,在某些情况下,显示 403;14 或 405)。但是,IIS 已设置为将指向这些特定错误的任何内容发送到 .aspx 文件。这允许我们实现一个 HttpHandler 来处理请求并做一些事情,这包括找到关联的模板,然后执行与之关联的任何内容。

现在,这一切都适用于 IIS 5 和 6,在某种程度上,也适用于 IIS7 - 但有一个问题,当您发布表单时会发生这种情况。

看,当您将表单发布到不存在的 URL 时,IIS 会说“啊,但该 url 不存在”并抛出 405“方法不允许”错误。因为我们告诉 IIS 将这些错误重定向到我们的 .aspx 页面并因此使用我们的 HttpHandler 来处理它,所以这通常不是问题。但是从 IIS7 开始,所有的 POST 信息在被重定向到 405 后都丢失了。所以你不能再做涉及表单的最琐碎的事情了。

为了解决这个问题,我们尝试使用 HttpModule,它保留 POST 数据,但似乎没有在正确的时间(需要时)初始化 Session。我们还尝试对所有请求使用 HttpModule,而不仅仅是命中 404/403;14/405 的丢失请求,但这意味着图像、css、js 等内容正在由 .NET 代码处理,这非常低效。

这让我想到了一个实际的问题:有没有人遇到过这种情况,有没有人有任何建议或知道该怎么做才能让事情恢复正常?到目前为止,有人建议使用微软自己的URL 重写模块。这会帮助解决我们的问题吗?

谢谢。

0 投票
7 回答
832 浏览

seo - SEO 和带有动态 URL 的硬链接

使用 ASP.NET MVC(或使用 HttpHandlers),您可以动态生成 URL,就像这个问题中的一样,其中包括标题。

如果标题更改(例如,编辑它)并且有一个链接指向另一个站点的页面,或者 Google 的 Pagerank 是针对该 URL 计算的,会发生什么情况?

估计全丢了吧?(链接指向无处,计算的pagerank丢失)

如果是这样,有没有办法避免它?

0 投票
4 回答
2121 浏览

asp.net - 如何在经典 asp、.NET 和 javascript 之间共享变量值?

IHttpHandler在 .NET C# 中创建了一个将 html 片段返回到经典 asp 页面的方法。

经典的 asp 页面IHttpHandler通过使用 vbscript 中的基本 http 请求ServerXMLHTTP或 JavaScript 中的 Ajax 调用与通信。

现在,我需要一种方法来与 .NET 应用程序共享我在 vbscript 中但在 javascript 中没有的变量。

首先,在经典的 asp 和 .net 之间共享一个变量不是问题,因为我可以将它添加到 http 请求中。因为该变量在 javascript 中不可用,但是在这种情况下我不能这样做。

我的想法是,我可以将变量缓存在 .NET 应用程序中,并将缓存的版本用于 javascript 调用。但要使其正常工作,我需要一种方法来唯一标识 .NET 中的“客户端”......

我尝试添加System.Web.SessionState.IRequiresSessionState到我的 HttpHandler 并使用 SessionId 但这不起作用,因为对 HttpHandler 的每次调用似乎都会获得一个新 ID。

我的想法正确吗?我在这里有什么选择?

0 投票
4 回答
2057 浏览

performance - 尝试实现类似 XMPP 的协议的 IIS 性能问题

我们有一个客户端,它需要从服务器获取交互式消息,这些客户端分布在世界各地的各种防火墙后面,各种端口都关闭了。我们唯一可以依赖的是 HTTP 端口 80(和 HTTPS 443)。

该设计基本上以 XMPP(Jabber 协议)为蓝本,使用我们的客户端和 IIS。客户端向 .NET 处理程序发出 GET 请求;处理程序将请求保持打开一段时间以查找消息。如果有任何消息到达,它们会立即发送给客户端;如果不是,则在超时后,连接会以“无数据”响应关闭。客户端立即重新打开通信。

嗯,理论上。

实际发生的情况是,首先,IIS 不能同时处理超过 100 个请求——其他请求都在排队,并且在“已连接”和 IIS 识别到客户端调用之间可能会有几分钟的延迟。其次,大约一半的时间客户端超时,服务器没有任何响应(客户端超时比服务器长五分钟)。

POST 始终有效。在同一 Web 服务器上提供的其他数据可以正常工作。Web 服务在同一台服务器上工作。这是 Windows 2K3 Server 上的开箱即用安装。

是否有我们缺少的配置选项,或者我应该看看其他什么来解决这个问题?

谢谢。

0 投票
2 回答
5697 浏览

asp.net - Web.Config 中的 HTTPHandler 标记会破坏 asmx 文件

在我的 ASP.Net 1.1 应用程序中,我已将以下内容添加到我的 Web.Config(在 System.Web 标记部分中):

这很好用,并且 HTTPHandler 为 .bcn 类型的文件启动,并完成它的工作。但是由于某种原因,所有 ASMX 文件都停止工作。知道为什么会这样吗?

干杯格雷格

0 投票
5 回答
1128 浏览

c# - 如何“顺利”格式化 HttpHandler URI?

我只是在使用 ASP.Net 2.0 干预 C# 中的 RESTful Web 服务的方式,并且已经管理(通过类库、对前者产生的 dll 的引用以及对我的 web.config 的一些调整)来哄出一个URI 格式如下:

http://localhost/DevelopmentProject/testhandler/?input=thisismyinput

毫无疑问,它只是将输入作为带有启发性前缀“您的输入是:”的文本返回

我的印象是,我可以让 URI 变得更加平滑,类似于以下内容:

http://localhost/DevelopmentProject/testhandler/thisismyinput

并得到相同的结果,但不知道如何摆脱讨厌的 "?input="

我的 web.config 的 httphandlers 部分的条目是(添加空格以便代码显示):

< add verb="*" path="testhandler/*" type="HandlerLib.testhandler, HandlerLib"/ >

我在本地机器上运行 IIS 5.1,这会带来问题吗?

基本上我哪里错了?

谢谢。

0 投票
5 回答
7475 浏览

asp.net - HTTPHandler 从另一台服务器检索下载文件?

我想向网站用户提供可下载的文件,但想对用户隐藏文件的 URL ...我认为 HTTPHandler 可以解决问题,但是否可以从外部服务器检索文件和将其流式传输给用户?

也许有人可以给我一个提示,告诉我如何做到这一点,或者给我指出一个以前做过的资源?


只是为了详细说明我想要实现的目标......我正在构建一个 ASP.NET 网站,其中包含一个音乐下载链接。我想保护文件的实际 URL,我还想将它们存储在外部(PHP)服务器上(便宜得多)......

所以我需要做的是设置一个流,它可以从 URL 中获取文件(指向另一台服务器),并将其流式传输到 Response 对象,而用户不会意识到它来自另一台服务器。

TransmitFile 方法是否允许从完全独立的服务器流式传输文件?我不希望文件“通过”我的服务器流式传输,因为这违背了目的(节省带宽)......我希望客户端(浏览器)直接从另一台服务器下载文件。

我可能需要文件托管服务器上的处理程序吗?也许另一端的PHP脚本是要走的路......?

0 投票
2 回答
2521 浏览

asp.net - ASP.NET HTTP 处理程序和全局变量

我已经创建了 HTTP 处理程序。

如何像使用 global.asax 中的 ASP.net 网页一样为这些处理程序创建全局变量?

0 投票
2 回答
869 浏览

c# - 使用 Graphics.DrawImage 时如何保持来自 Http 处理程序的图像的透明度?

我有一系列需要即时裁剪的 GIF,我在 C# 中使用 HTTP 处理程序,因此我可以更好地封装代码 - 为结果提供缓存等。

Image目前,当我通过对象将现有图像绘制到新图像时,Graphics所有透明度都会丢失。

我尝试了各种技术来尝试保持透明度,但无济于事。

我尝试过的事情:

  • 使用MakeTransparent (Color)方法调用
  • 使用andImageAttriutes的组合ColorMapSetColorKey

我真的不想开始使用不安全的运算符或 Win32 调用。

有任何想法吗?

0 投票
1 回答
1383 浏览

asp.net - .net http 处理程序重定向到 rtmp 和 flex

我有一个http handler( .ashx),用于根据 id 显示图像或 swf 或 flv。因此,例如http://www.example.com/myHandler.ashx?id=1234它显示 id 1234 的图像。我将其用作图像标签或 swf 加载器或 flex 中的视频显示的来源。在我的处理程序中,如果项目是视频,我只需将请求重定向到渐进式下载视频的 http 地址(flv)。这很好用。但是,如果我想使用 rtmp 协议将请求重定向到流媒体服务器,它不会做任何事情。有什么想法吗?是否甚至可以重定向到 http 地址以外的任何地方?

我也有weborbdot net 可用,它显然有 rtmp 隧道可用。是否可以以这种方式设置请求?