问题标签 [delegatinghandler]

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 回答
898 浏览

c# - DelegatingHandler 适用于 Localhost 但不适用于 Azure

我有以下代码在转发到我时可以正常工作localhost:1671

但是,当我将其更改为我在 azure 上的网站(例如 xxxx.azurewebsites.net)时,它不起作用。

知道我是否需要对 Azure 进行不同的配置吗?我假设在 Azure 上的端口是 80。

0 投票
1 回答
779 浏览

c# - DelegatingHandler 是否有任何性能副作用?

我的 api 项目中有这个委托处理程序:

HttpContext.Current.SetMobileRequestInfo只需添加info对象添加到 http-items 以便稍后在应用程序中使用。

Validate是一个非常轻量级的数据库查询。和Log方法是将请求的数据(如URI和查询字符串等)插入数据库。

有时,我的应用程序会出现奇怪的行为:它只是崩溃了!没有日志,没有错误,什么都没有。只是服务器不响应请求。我必须重新启动应用程序(例如通过在 中进行虚假更改web.config)才能使其恢复工作。该应用程序是一个非常简单的应用程序。我在 IIS 7.5 机器上运行的 .NET 4.5 平台上使用 ASP.NET Web API 2。我唯一能想到的地方是提到的委托处理程序,这可能会导致错误。你有什么主意吗?委托处理程序是否有任何可能导致应用程序关闭的性能副作用?

0 投票
1 回答
251 浏览

c# - 如何为自定义路由定义 DelegatingHandler?

我创建了一个 DelegatingHandler,它适用于每个请求。我读过一些文章,我可以为特定路线定义处理程序,但我尝试了很多方法都没有成功,我错过了一些我没有找到的东西。

最后一次尝试是:

我的类控制器和方法具有以下属性:

我的处理程序缺少什么仅适用于api/message/text 之类的请求?

我已经阅读了诸如How to make more MapHttpRoutes for MVC 4 Apihttp://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection之类的链接。

0 投票
3 回答
6966 浏览

c# - 单元测试 DelegatingHandler

如何对自定义 DelegatingHandler 进行单元测试?我有以下内容,但它抱怨 innerHandler 未设置。

0 投票
1 回答
1945 浏览

c# - DelegatingHandler ASP.NET Web API 中添加 BearerToken 授权头

为什么如果我在自定义 DelegatingHandler 中将带有正确令牌的授权标头添加到没有此标头的请求中,我会收到响应:需要 401 授权?

如果我使用相同的授权标头从邮递员发送请求,我得到 200 OK。 在此处输入图像描述

0 投票
0 回答
86 浏览

c# - webapi 响应的全局查询参数

我有一个安静的 webapi,我想支持一个查询参数来搜索类似的东西?q=

我想做的是使用 delegatingHandler 来更改响应基本上为每种类型的 Resource 创建一个 QueryHandler

BaseQueryHandler 方法看起来像这样

像这样的具体 QueryHandler

更新:

我一定会看看 OData。

到目前为止,我所做的是实现我的 QueryHandler,然后使用扩展方法来搜索对象的字段和值

然后像这样在我的具体 searcHandler 实现中使用它

(实际上在另一个关于dynamic.Linq的答案中找到了这个(不记得URL,当我重新找到它时会更新,以给予适当的信任)

你们有没有更好的方法来做到这一点?

通常你会在所有操作上正确地使用查询参数,我不想这样:)

0 投票
1 回答
827 浏览

c# - 在 DelegatingHandler 中调用 LoadIntoBufferAsync 时出现死锁

要仅对大于给定大小限制的 WebAPI 响应进行压缩/放气,我必须找出要返回的内容的大小。但是以下行:

似乎会在 API 响应周期的后期导致死锁。大小确定正确,处理程序执行良好,但之后请求将永远挂起。

这是我的 DelegatingHandler 的 SendAsync 方法。

我尝试了 Wait(..)、ConfigureAwait(..) 和 ContinueWith(..) 的不同组合。使用 async / await 语法我遇到了同样的问题。

编辑: Compressor 的 SerializeToStreamAsync (负责压缩内容流):

=> 显然,当它被调用时,管道被破坏了:

单独调用两者中的任何一个都可以,因此它们在读取/写入内容流时一定是个问题。

0 投票
1 回答
2590 浏览

c# - 在 Web API 调用中使用多个委托处理程序

我有一个需要使用 2 个委托处理程序的 Web API 调用,但我似乎从未进入第二个处理程序。该路线已向处理程序注册。我不允许在全局配置中设置处理程序。

HandlerA 触发断点,没有进一步的问题。

我预计会到达 HandlerB 但它永远不会到达,它直接进入 API 控制器。处理程序 A 不对请求做任何事情。

0 投票
1 回答
3585 浏览

c# - 我们如何在 ASP.NET Web API 中记录身份验证令牌请求

我们有一个 ASP.NET Web Api 应用程序,它使用 OAuth Bearer Tokens 进行身份验证,我们正在尝试实现请求/响应日志记录。

基本上它的工作原理如下:
1. 用户向“/authenticate”发送请求并接收身份验证令牌
2. 然后用户使用此身份验证令牌向公开的 API 方法发出请求

为了将请求记录到公开的 API 方法中,我们使用了一个DelegatingHandler非常好用的方法。

但是,对“/authenticate”的请求不会被DelegatingHandler实现捕获。

记录令牌请求是否需要不同的方法?

使用 OAuth 代码编辑

0 投票
2 回答
2169 浏览

c# - DelegatingHandler 缓存一个 HttpResponseMessage

我正在尝试缓存对 webapi 端点请求的响应。

我创建了一个 DelegatingHadler,它使用先前生成的响应使管道短路,但它不起作用。

我究竟做错了什么?或者我怎样才能正确地做到这一点?

这是我的DH: