问题标签 [webhttpbinding]

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 投票
0 回答
1401 浏览

azure - 使用 WCF REST 模板的 Azure 服务总线 webHttpRelayBinding 会导致不必要的 aspNetCompatibilityEnabled 错误

我正在使用 WCF REST 模板使用 Azure 服务总线 webHttpRelayBinding,但它会导致不必要的 aspNetCompatibilityEnabled 错误,即使我的服务类已正确修饰:

我的网络配置:-

例外是:-

0 投票
1 回答
851 浏览

wcf - 仅对支持它的绑定进行 WCF 回调

我正在尝试创建一个 WCF 服务,该服务具有一个webHttpBinding端点(用于 Java 客户端)和一个netTcpBinding端点(用于 .NET 客户端)。

对于netTcpBinding端点,我希望能够使用回调来提醒事件,但是当我尝试配置它时,WCF 会抱怨,因为该服务也有webHttpBinding不支持回调的端点。

有没有办法让一个端点使用回调而不是另一个端点?

0 投票
2 回答
9325 浏览

ajax - 使用 gzip 编码时,WCF 服务返回不正确的 Content-Length

我有一个包含过滤文本框和列表框的网页。对文本框的修改会触发 AJAX 请求,该请求会返回一个值数组,用于填充列表框。

我有时会遇到这些调用失败的问题,具体取决于返回的数据的大小。小尺寸返回数据会出错,大尺寸数据返回并成功处理。

仅当我使用大于 4.2 的 jQuery 版本时才会出现此问题。如果我使用 jQuery 4.2 版,我没有问题。


这是调用的代码:

如果返回两个元素,这是调试控制台的内容:

但是如果返回一个元素:

所以,当然,我们得到一个“未终止的字符串常量”错误。


我已经使用提琴手做了一些调查。

在所有响应(甚至是成功的响应)中,fiddler 都显示错误:

Fiddler 在会话 # n1中检测到协议违规。

内容长度不匹配:响应头指示n2个字节,但服务器发送了n3个字节。

如果响应标头指示的大小大于实际大小,则浏览器仍然可以解释结果。

如果响应头指示的大小小于实际大小,则浏览器无法解释结果。

显而易见的假设是响应处理代码读取Content-Length标头并且不读取超出长度规定的任何数据。

我调查的下一步是比较 jQuery 版本 1.6.1(中断)和版本 1.4.2(未中断)的请求/响应标头。

jQuery 1.6.1 请求标头:

jQuery 1.6.1 响应标头

这是我使用 jQuery 1.4.1 时的请求标头。请注意,Accept标头与 jQuery 1.6.1 的值不同。

以及对 jQuery 4.1.1 的响应:

所以明显的区别是,当通过 jQuery 1.6.1 进行调用时,响应使用 gzip 进行压缩,而当通过 jQuery 1.4.2 进行调用时,响应没有被压缩。


所以现在我可以做一个解决方案,即覆盖默认的Accept标头以确保它不包含"q=0.01"字符串。(我能找到的最佳解释"q=0.01"here,但我不明白为什么我的服务实现将其解释为严重压缩响应的请求。)


所以在所有这些调查之后,剩下的问题是为什么当响应被 GZIP 压缩时,内容长度标头和实际内容长度之间存在差异?

我正在使用带有 webHttpBinding 的 WCF 服务。

0 投票
3 回答
19038 浏览

wcf - WCF REST 服务在 WCFTestClient 中不可见

我已经为我的原型服务成功配置了 3 个端点。端点是 basicHttpBinding、wsHttpBinding 和 webHttpBinding。我目前唯一的故障是在 WCFTestClient 中。当我将它指向我的服务时,它会列出前两个,而不是 webHttpBinding。我可以通过浏览器测试 REST 端点,它工作得很好。这是我的配置:

有什么原因我在 WCFTestClient 工具中看不到 webHttpEndpoint 吗?

干杯,丹妮。

0 投票
1 回答
2327 浏览

wcf - 具有基本身份验证的基于 WCF SSL Rest 的 Web 服务

我使用 SSL 部署了一个简单的基于 WCF REST 的服务(当然是开发)。我正在尝试使其与基本身份验证一起使用,但坦率地说,它无济于事。

基于 IIS 6.0 REST - 使用 webHttpBinding

这是我的 web.config 的样子......只是相关部分:

我在 IIS 中为 WCF 服务的虚拟目录关闭了匿名身份验证,并打开了基本身份验证。

当我尝试使用https://localhost/ThisTestService/MyTestService.svc访问它时,我无法访问它。它给出了“找不到与绑定 WebHttpBinding 的端点的方案 http 匹配的基地址。注册的基地址方案是 [https]。”。

我用谷歌搜索了很多,但到目前为止,我所有试图理解和解决这个问题的尝试都是徒劳的。如果我使用匿名身份验证,那么我没有问题,但是我需要使用基本身份验证。

任何帮助是极大的赞赏。谢谢。

0 投票
1 回答
383 浏览

wcf - WCF - RESTful 身份验证 - 总是得到 400 或 401 HTTP 响应

我正在使用 fiddler 生成对 TransportCredentialOnly(Basic) 服务的 RESTful 请求。如果我包含“授权:基本”行,我总是会收到错误 400 错误请求。否则,如果我忽略它,我会得到预期的 401。

通常当我看到 400 时,会有一个堆栈跟踪,或者一些帮助我调试它的线索,但在这种情况下什么也没有。我正在这个圈子里转。GUID+app_tracelog 和 app_tracelog 似乎没有更新或显示任何内容,在我的 service.config 文件中我有

对于大多数错误,确实会产生堆栈跟踪。似乎身份验证子系统由于某种原因而变得不安,但我不知道为什么......

我在提琴手中的请求标头只有 Authorization: Basic [Base64 version of name;pass] 就是这样。

请指教!

0 投票
1 回答
1276 浏览

wcf - 在 RESTful 服务中使用 WCF Duplex 服务

假设我想创建一个引用双工服务(“ServiceDuplex”)的 WCF WebHTTP 服务(“ServiceREST”)。ServiceDuplex 需要实现某些回调成员来传递从它请求的数据。例如,对 ServiceDuplex 上的 GetCustomers 的调用会触发该服务上的一个方法,该方法通过回调“ReceiveCustomers”将客户服务回客户端。

话虽这么说,假设我想要一个 ServiceREST 上的方法“GetSingleCustomer”。假设所有数据都是按需检索的(而不是在启动后缓存),我必须首先从 ServiceDuplex 调用“GetCustomers”并等待我的集合填充到我实现的回调中,然后才能搜索单个客户我需要。

由于 webHttp 不支持对客户端的回调,我不得不在我的 GET (GetSingleCustomer) 调用中使用类似 AutoResetEvent 的东西,直到双工的回调填满集合。

对于我正在尝试做的事情,是否有“最佳实践”,或者我正在尝试做的事情是错误的以至于没有创建这样的实践?!

谢谢您的帮助。

0 投票
1 回答
1804 浏览

.net - 无法添加自定义 WebHttpBehavior:无法添加具有相同键的两项

首先一点背景知识:我在 WCF 4 中有一个使用 WebHttpEndpoint 的 REST 服务。我不想在每个服务方法甚至每个服务类中都有明确的错误处理程序,而是希望有一个集中的错误处理程序,它可以进行日志记录并能够包装一个很好的自定义消息以传递给客户端。

我试图通过实现 IErrorHandler 并使用客户 WebHttpBehavior 添加它来做到这一点:

然后我使用 ExtensionElement 添加它:

如果整个错误处理方法看起来是个坏主意,请随时对此发表评论......

但是,我的问题是为什么在服务尝试启动时会出现此异常:

看起来 webHttp 或 errorHandler 行为都可以单独存在,但它们不会共存。

0 投票
2 回答
8455 浏览

wcf - basicHttpBinding、webHttpBinding 和 mexHttpBinding 端点如何共存于一个 WCF 服务中

我有一个 WCF 服务(目标 .NET 4),我需要公开 4 个端点:SOAP、POX、JSON 和 MEX。

我的配置文件如下所示:

当我运行该服务时,WCF 测试客户端返回的服务msg无法添加System.NullReferenceException-对象引用未设置为对象的实例和堆栈跟踪:

但是 JSON 和 POX 端点是可访问的并且工作得很好。另一方面,当我从配置中将它们注释掉时,WCF 测试客户端会正确显示 SOAP 服务。

目前,服务中只实现了一种简单的方法:

为什么我要通过添加 pox 和 json 端点来制动 mex 端点?

0 投票
1 回答
190 浏览

wcf - 有没有办法在 WCF 中使用带有 webhttpbinding 的 windows 身份验证来获取密码?

我目前有一个自托管的 WCF REST 服务。使用 WebHttpBinding 和 Windows 身份验证,是否有可能获得密码或者我必须使用基本身份验证?