问题标签 [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 投票
4 回答
10850 浏览

wcf - 如何配置具有两个终结点的 WCF 服务以对每个终结点使用不同的 ListenUri?

我有一个 WCF 服务,它使用 WPF 和 ASP.NET 应用程序公开一个端点webHttpBinding并被 WPF 和 ASP.NET 应用程序使用。一切都很好。

我现在正尝试从 Windows Phone (WP7) 使用该服务。但是,由于 .NET Framework 还没有完全赶上 WP7,因此System.ServiceModel.Web命名空间不可用,结果webHttpBinding在 WP7 中不起作用。

现在,在我的服务中,如果我切换到webHttpBindinga basicHttpBinding,电话应用程序就可以工作。

我不想重新设计我的 WPF 和 ASP.NET 应用程序来使用basicHttpBinding它。

我了解 WCF 能够支持多个绑定,并且我已尝试配置和运行该服务,以便它公开端点webHttpBindingbasicHttpBinding. 该服务似乎启动良好。但是,WPF 和 ASP.NET 应用程序无法访问它。当我尝试在 WP7 应用程序中创建服务引用时,我收到以下消息:

绑定实例已关联到侦听 URI 'http://localhost:1726/GeneralService.svc'。如果两个端点想要共享同一个 ListenUri,它们也必须共享同一个绑定对象实例。两个冲突的端点要么在 AddServiceEndpoint() 调用中指定,要么在配置文件中指定,要么在 AddServiceEndpoint() 和 config 的组合中指定。

baseAddress我和一位同事对,address和属性进行了各种更改,listenUri但没有任何运气。我们现在正处于试错阶段,事实证明这不是很有效。

0 投票
0 回答
2186 浏览

wcf - REST 服务的 WCF Windows 身份验证问题

我在设置 WCF 服务以在 Windows 身份验证下运行时遇到了一些困难。该服务仅通过使用 ajax 的 jQuery 使用。

IIS(服务器 2003 上的版本 6)设置为仅允许 Windows 身份验证。

web.config 有<authentication mode="Windows" />标签。

这是 web.config 的服务部分:

界面如下所示:

和实施:

当我在 Internet Explorer 中导航到该服务时,它会提示我输入用户名和密码,尽管打开了 Windows 身份验证。

一旦我启用匿名身份验证,服务就可以正常加载并且一切正常。问题是,我在 Web 应用程序中发生了其他需要关闭匿名的事情。

我在网上搜索过,找不到关于这个问题的任何信息。

0 投票
1 回答
2133 浏览

wcf - 如果排除 bindingNamespace 属性,webHttpBinding 端点会在 WSDL 中添加 temuri.org 命名空间

我有一个需要通过 SOAP 端点 (wsHttpBinding) 和 REST 端点 (webHttpBinding) 公开的 WCF 服务。我在相关属性中包含了名称和命名空间以帮助进行版本控制(tempuri.org 应该从 WSDL 中完全删除)。出于某种原因,如果我不在 webHttpBinding 端点上添加 bindingNamepace 属性,它会在 WSDL 中添加 tempuri.org 命名空间。示例 WSDL 输出如下。

没有 bindingNamespace 的 WSDL -

带有 bindingNamespace 的 WSDL -

这是我的端点的 web.Config。我正在使用 WCFExtras 来展平我的 WSDL(因此 wsHttpBinding 端点上的行为配置),但没有它的行为是相同的。

我已经在我的解决方案中加载了 WCFExtras 并查看了 WsdlExporter 以查看是否可以找到 tempuri.org 的提及但没有成功。我还使用 XSharper.Core 转储对象图以查看是否可以找到它。它不在那里。

有谁之前经历过这个吗?作为一种解决方法,我将在 webHttpBinding 端点上包含 bindingNamespace 以保持 WSDL 干净,但我想知道为什么会发生这种情况。

谢谢!

0 投票
1 回答
1463 浏览

channelfactory - 使用 WebHttpBinding 的 ChannelFactory 在执行 ServiceContract OperationContract 时始终 POST

我有一个通过 WebServiceHost 托管的服务,我需要将一些调用委托给网络上的其他 REST 服务。

我构建了一个 ClientBase 具体类来处理这个问题。流程如下所示:

http://localhost:8000/users/my@email.com -> 我的 WebServiceHost 实例 -> ClientBase -> REST 服务

一切都运行良好,直到我意识到来自 ClientBase 的所有调用都使用 POST 作为动词。为了确保我没有对 ClientBase 做任何愚蠢的事情,我手动构建了一个 ChannelFactory 并使用它。不走运,无论 ClientBase、ChannelFactory 甚至 ServiceContract 装饰如何,每个调用仍然使用 POST。

然后我开始隔离代码,并意识到当原始调用不是来自我的 WebServiceHost 正在处理的请求中时,我的简单 ChannelFactory 工作。

这是一个蒸馏的 Program.cs,它展示了确切的问题,来自 Program.Main 的 MakeGetCall() 按预期工作,但来自 MyService.GetUser 的调用将始终 POST:

0 投票
1 回答
1073 浏览

json - 通过 https 进行 WCF 身份验证

我有一个 WCF 服务,它使用 https 进行通信,使用 json 作为响应格式。我不希望任何人都可以使用我的方法,因此我将 IIS 中的身份验证从匿名和基本更改为基本。

到目前为止,浏览器正在询问用户并通过,但我收到以下错误:

找不到与绑定 WebHttpBinding 的终结点的方案 http 匹配的基地址。注册的基地址方案是 [https]。

我必须对我的端点进行什么更改才能使用身份验证?

我的 web.config 看起来像:

0 投票
2 回答
1332 浏览

asp.net - 在 web.config 中添加配置时,带有 webHttpBinding 的 WCF 服务不起作用

我有一个非常基本的 WCF 服务,我想在 IIS 上作为 RESTful 服务运行。这是服务合同。

有一个实现这个契约的类叫做StopMotion.Business.WCFService.RestCameraWs. 然后我.svc在我的 web 项目中添加了一个带有以下标记的文件。

当我导航到此服务 url 时,它会显示服务主页和指向 wsdl 定义的链接。但是,当我在web.config文件中添加配置以配置此服务时,webHttpBinding我从 IIS express 收到以下错误页面。

在此处输入图像描述

首先,我认为我在配置方面做错了。后来我删除了配置,只是在 svc 文件中更改了工厂,例如

WebServiceHostFactory据说webHttpBinding默认使用,我们不需要在配置中添加它,除非我们需要更多的东西。但是更改工厂也会导致 IIS Express 上出现相同的错误页面。

有什么想法吗?

0 投票
1 回答
489 浏览

asp.net - WCF webHttpBinding out参数支持

我正在创建我的第一个 wcf 服务webHttpBinding。在网上,我读过很多文章,告诉我在 Web 服务中使用参数是不好的做法,如中所述

在 WCF 服务的方法中使用输出参数是不好的做法吗?
有时如果我们在 SOAP 场景中使用 out 参数。从 wsdl 生成的客户端定义更改了此处讨论的参数顺序 http://social.msdn.microsoft.com/Forums/en/wcf/thread/48b5992f-f7bd-4b67-8299-514d1780fa9a
我相信的是在 REST (webHttpBinding) 中无法使用 out 参数。任何人都可以确认或否认这一点吗?

0 投票
1 回答
414 浏览

wcf - 为 RESTful WCF 服务实现 RequestWrapper

我编写了一个名为RequestWrapper的简单对象,其中包含单一类型的方法:

它包含任何操作try..catch、错误处理、日志记录、数据库连接、事务(提交和回滚)等。

目前我像这样使用它:(例如,不是生产代码)

我只是简单地包装了我的 RESTful Web 服务的每个方法(使用 WCF 和WebHttpBinding)。

我的问题是:我应该如何实现自动为我包装的行为?是否可以?

0 投票
0 回答
488 浏览

wcf - MaxConcurrentCalls 的 WCF 队列行为

我有一个具有以下设置的 WCF 服务:

  • 绑定 = WebHttpBinding
  • InstanceContextMode = 单
  • 并发模式 = 多个
  • MaxConcurrentSessions = 高值

文档说明了 MaxConcurrentCalls:MaxConcurrentCalls 属性指定了通过 ServiceHost 对象主动处理的最大消息数。每个通道可以有一个未决消息,在开始处理它之前不计入 MaxConcurrentCalls 的值。

几个问题:

  • “每个通道可以有一个未决消息,在开始处理它之前不计入 MaxConcurrentCalls 的值”这句话到底是什么意思?
  • 如果达到 MaxConcurrentCalls 阈值,是否有新的 TCP 连接排队?
  • 如果达到 MaxConcurrentCalls 阈值,现有 TCP 连接上的新请求是否排队(在流水线期间)?
  • 如何指定这些队列的长度?

谢谢!

雷内

0 投票
2 回答
285 浏览

wcf-rest - wcf 宁静服务中的长时间计算

我有一个 WCF RESTful 服务,它工作正常,问题是该服务公开了一个“计算”方法,完成计算可能需要几分钟,而且由于 REST 是一种无状态方法,我的想法已经用完了!

我应该保持会话吗?

我该怎么做回调?

10分钟在网站上等待回复很不方便,但我必须找到解决方案。

PS:服务一定要安静,不能减少计算时间。