问题标签 [weboperationcontext]

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 投票
3 回答
27345 浏览

wcf - 什么是 HttpContext.Current.Request.RawUrl 的 WCF 等效项?

我有一些在纯 WCF 上下文中运行的 RESTful 服务(即未启用 ASP.NET 兼容性,因此没有HttpContext.Current可用的对象)。

服务的 URL 在请求开始时使用 an IHttpModule(此时确实有 anHttpContext并使用 重写它HttpContext.Current.RewritePath)重写,以摆脱.svcURL 中的扩展等内容。

但是,我需要访问从 WCF 基础结构中请求的原始 URL。HttpContext.Current.Request.RawUrl任何地方的OperationContext或类上是否有等价物WebOperationContext?使用WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri返回重写的 URL,而不是原始 URL。

0 投票
1 回答
1044 浏览

.net - 当 InstanceContextMode 为 Single 时 System.ServiceModel.Web.WebOperationContext 如何工作?

如果我的 WCF 服务具有此属性:

以下单例如何在通话中工作?

0 投票
4 回答
4675 浏览

wcf - WCF 4 REST 服务不能返回 StatusDescription,只有 StatusCode

我目前正在将我的 WCF RESTful 服务从 .NET 3.5(Starter Kit)迁移到 .NET 4。我使用 Visual Studio 2010 中的 WCF Rest 服务模板开始了我的项目。我必须弄清楚如何保留我的授权方案(以前使用 ServiceAuthorizationManager 完成 RequestInterceptor。经过一些工作和研究,我完成了它。但现在我有一个附带问题。我的服务过去常常使用 HTTP 状态代码和简短描述来反馈我的客户任何处理错误。我在我的服务方法的许多地方都使用 WebOperationContext 向客户描述出了什么问题,如下所示:

但在 WCF 4 中,只有 StatusCode 有效 - StatusDescription 静默失败。我不知道为什么。我唯一的猜测是 WebOperationContext 在这个新的 WCF 4 场景中不起作用,我应该改用 OperationContext,但这也不起作用。在我的扩展 ServiceAuthorizationManager 的自定义类中使用了以下方法,通知客户端由于身份验证摘要格式错误而无法访问请求:

即使在此处使用 OperationContext 直接(安装为 WebOperationContext),StatusDescription 也不起作用。

我在这里缺少什么?为什么这么小的东西可以从.NET 3.5 突破到 4?

0 投票
0 回答
1290 浏览

wcf - WebOperationContext 对象引用未设置为对象的实例

当我尝试在 WCF 项目中使用 WebOperationContext.Current 时,Current 为空。下面是示例。任何人都可以阐明它吗?

WebForm - default.aspx:

//WCF接口

//WCF实现

系统设置:ASP.NET 3.5

先感谢您。


我的问题的描述更改如下:

当我尝试在 WCF 项目中使用 WebOperationContext.Current 时,Current 为空。下面是示例。任何人都可以阐明它吗?

我需要的是一种透明的方式(或一种对现有代码改动很小的方式),以使现有代码基于令牌做指定的工作。这就是这里使用 HttpModule 的原因,如下所示:

//HttpModule: 插入一个token,在pipneline中工作可以基于。如前所述,HttpModule 用于对现有代码进行最少的更改。

系统设置:ASP.NET 3.5

先感谢您。

0 投票
1 回答
1230 浏览

c# - WebOperationContext.Current.OutgoingResponse.StatusDescription 被忽略

我在服务器端为 WebOperationContext.Current.OutgoingResponse.StatusDescription 属性设置的值被忽略。客户端收到默认消息,例如 404 代码未找到,200 代码正常。

0 投票
2 回答
1193 浏览

c# - 像在 WebOperationContext 中一样在模拟 WebOperationContext 中执行 CreateTextResponse(...)

我在单元测试的包装器上模拟 WebOperationContext 类(使用 Moq)。但是我需要在我的模拟上下文中执行来自 WebOperationContext 类的 CreateTextResponse(...) 方法以生成消息。你能给我任何建议吗?

编辑:下面是我用于 WebOperationContext 的当前模拟。但是,我无法实现 CreateTextResponse/CreateStreamResponse。

0 投票
1 回答
546 浏览

wcf - WebOperationContext 在静态函数中可用吗?

我有一个 RESTful WCF 服务,它有一个服务方法,比如 BeginX()

在 BeginX 内部,我在一个静态帮助器类中调用我的静态 Validate 函数。在静态 Validate 方法中,我可以调用 WebOperationContext.Current.OutgoingResponse.StatusCode = blah 吗?

从我的服务中的静态方法内部调用当前上下文时,预期的行为是什么?

(我尝试对其进行原型设计,但当我尝试从控制台应用程序中运行的进程内 WCF 服务中获取 WebOperationContext 时,我似乎无法获取它)

0 投票
1 回答
1918 浏览

moq - 模拟 WebOperationContext

我正在使用WCFMock在我的 Web 服务中模拟 WebOperationContext。唯一的用途是将自定义 HTTP 标头添加到 WebOperationContext.Current.OutgoingResponse.Headers 集合。我无法使用 Moq 验证这一点。我已经尝试过的:

  • 验证是否调用了 Add 方法。这失败了,因为 Add 不是虚拟的
  • 尝试直接从 MockedWebOperationContext.Current 访问标头。这在数量上始终为零

如何在我的单元测试用例中验证是否添加了自定义标头?

0 投票
1 回答
2422 浏览

wcf - 使用 Nunit 测试 WCF 方法,但 WebOperationContext 为空

使用 NUnit 测试方法时,如何解决 WCF 服务方法中 WebOperationContext 为空的问题

我有一个单元测试项目,使用 NUnit 来测试 WCF 方法返回的数据:

然后我有一个测试方法如下

但是我在测试期间遇到错误

关于 SampleService 方法中的 WebOperationContext。

0 投票
0 回答
1582 浏览

c# - 模拟 WebOperationContext.IncomingRequest

我需要模拟 WebOperationContext ,特别是 IncomingRequest ,它带有一个分配 Accept 值的标头,以测试该值是否被正确读取并且 OutgoingReponse.ContentType 与所需格式匹配。我正在使用 WCFMock 并且在一般测试中一切都很好,但我无法理解我需要做什么来模拟传入响应。

Accept 属性是只读的,因此不能直接分配。我已经尝试将 setter 添加到 WCFMock.IncomingWebRequestContextWrapper ,因为它继承自 System.SericeModel.Web.IncomingWebRequestContext ,所以它可以预见会爆炸。

所以需要这样的东西

}

恐怕我必须完全模拟 WebRequest,如果可能的话,我希望避免这种情况。