问题标签 [basichttpbinding]

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 投票
2 回答
30132 浏览

php - 托管在 Windows 服务内的 WCF 服务 (basicHttpBinding) 的 WSDL URL

我在我们的一台服务器上的 Windows 服务中托管 WCF 服务。在使其在 basicHttpBinding 中工作并在 .NET 中构建测试客户端(最终成功)之后,我继续尝试使用 SoapClient 类从 PHP 访问它。最终消费者将是一个 PHP 站点,因此我需要使其在 PHP 中可用。

当我不得不在 PHP 代码的 SoapClient 类的构造函数中输入 WSDL url 时,我感到很困惑。WSDL 在哪里?我所拥有的是:

http://172.27.7.123:8000/WordServicehttp://172.27.7.123:8000/WordService/mex

这些都没有公开 WSDL。

作为 WCF 的新手,我可能会问一个愚蠢的问题(或者我可能在某处有错误的假设)。请温柔 :D

不, http: //172.27.7.123 :8000/WordService?wsdl没有显示与 http://172.27.7.123:8000/WordService 不同的任何内容:(

我是否被迫在 IIS 中托管它?我是否被迫使用常规 WebService?

0 投票
4 回答
7071 浏览

wcf - WCF ServiceHost basicHttpBinding 503 错误

我正在尝试在 Windows 2007 SP1 服务器上将 WCF ServiceHost 作为 NT 服务运行。ServiceHost 负责托管单个服务端点:具有以下地址的 basicHttpBinding:

当我在本地机器 (Windows XP) 上运行此 ServiceHost 时,它工作正常 - 当我向它发布 SOAP 消息时,我会返回一个 HTTP 202 代码(“已接受”),这是我的服务的正确响应,因为合同有 IsOneWay=true。但是,当我在我的 2007 服务器上运行它时,当我尝试调用该服务时出现 503 错误。我将 WCF 消息日志记录“一直向上”,但我没有看到任何日志记录,这让我相信这发生在比 WCF 更低的级别(调用永远不会到达 WCF“层” )。

系统管理员和我尝试了各种形式的 httpcfg 命令,但到目前为止没有运气。

我知道尝试在 IIS 中托管它可能是一种可能的解决方案,但我们的生产应用程序服务器没有安装 IIS,所以我只想将服务作为 ServiceHost 运行。

任何想法将不胜感激!

0 投票
2 回答
709 浏览

c# - WCF Authentication

We're building some core services in .Net 3.5 and exposing the services via WCF. The services will only be accessed internally (i.e. within the intranet). The services just need to authenticate the calling user's windows credentials and get their AD/functional groups.

The serives need to be exposed using NetTcpBinding and BasicHttpBinding.

What configuration do I need to add to the section for both both binding types? Is it just this:

Is that the case? Will this then apply to both my NetTcp and BasicHttp Bindings?

Thanks

0 投票
1 回答
9958 浏览

c# - 以编程方式在 WCF EndpointAddress 上设置标识

System.ServiceModel.EndpointAddress在连接到 WCF 服务时使用以下函数创建一个:

我需要传入一个EndPointIdentity与我的 web.config 中的以下摘录相关的内容:

我的 WCF 服务使用 X509 证书,因此我的身份似乎需要是X509CertificateEndpointIdentity. 为此的构造函数需要我传递一个证书……但我想传递一个 dns 值,如上所示。

谁能建议我的方法有什么问题?

0 投票
1 回答
3577 浏览

wcf - WCF/basicHttp 和 NTLM 身份验证

有谁知道 NTLM 身份验证在 WCF/basicHttp 中究竟是如何工作的?我想知道是否为每个服务方法调用传递了用户凭据,或者是否某种安全令牌用于后续服务方法调用。

我正在使用的确切绑定配置:

我在 MSDN 参考资料中找到了这种类型的配置。但我不确定这是否是一个好主意。另一种方法是提供一种自定义的 GetAuthenticationToken() 方法来为客户端的所有后续请求提供安全令牌。这可以通过企业库 - 安全应用程序块来完成。

更多详细信息:浏览器/Silverlight 客户端正在使用该服务。

0 投票
9 回答
101134 浏览

wcf - 如何在 WCF 中修复“找不到与架构 http 匹配的基地址”...

我正在尝试将 WCF 服务部署到我的服务器,托管在 IIS 中。自然它可以在我的机器上运行:)

但是当我部署它时,我收到以下错误:

这个集合已经包含一个带有 http 方案的地址。此集合中的每个方案最多可以有一个地址。

对此进行谷歌搜索,我发现我必须将 serviceHostingEnvironment 元素放入 web.config 文件中:

但是一旦我这样做了,我会得到以下信息:

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

似乎它不知道基地址是什么,但我该如何指定呢?这是我的 web.config 文件的相关部分:

任何人都可以阐明发生了什么以及如何解决它?

0 投票
4 回答
1662 浏览

c# - 为什么我的 Winforms 托管的 WCF 服务是单线程的?

我有一个 WCF 服务,用于替换旧的 ASP.NET Web 服务。该服务似乎工作正常,但由于某种原因它无法处理同时请求。我的服务实现具有以下属性:

我的主机声明如下所示:

服务运行并返回正确的结果,但如果两个客户端尝试同时进行调用,一个客户端将阻塞,直到另一个客户端完成,而不是一起执行调用。我没有使用任何配置文件。我正在尝试以编程方式完成所有操作。我是否有错误设置导致此行为?我已经使用 NetTCPBinding 运行其他服务而没有这个问题。

编辑: 回应约翰桑德斯:我不熟悉任何 ASP.NET 兼容模式。我没有使用任何会话状态,该服务是无状态的,它只是处理请求。除了实际方法的实现之外,我所做的其他一切都在此处列出的代码中。

可能的解决方案:

host.Open()我从主窗体的 form_load 事件调用该函数。我将调用移至单独的线程。这个线程所做的只是调用host.Open(),但现在该服务的行为似乎与我预期的一样。

0 投票
2 回答
1794 浏览

wcf - 第一次 WCF 请求,客户端总是抛出 System.Xml.XmlException: There are multiple root elements

每次我的 WCF 主机应用程序池启动时,对其进行第一次 WCF 调用的客户端总是抛出“System.Xml.XmlException:有多个根元素”所有后续调用都可以正常工作。

此异常发生在 WCF 请求的使用者/客户端。我已经针对完整的 WCF 客户端和 Silverlight 客户端对此进行了测试。它使用的是 basicHttpBinding,没有安全性,并且 aspnetCompatabilityMode = true

如果应用程序池保持活动状态,这没什么大不了的,但是由于缺乏活动,它会关闭,并且在重新启动时再次发生错误。

我还应该提到,应用程序池有时会从非 WCF 请求开始到另一个页面。但是还是第一次调用WCF,还是会在客户端抛出这个异常。

有人见过这个吗?如有必要,我可以提供更多详细信息。

谢谢

0 投票
1 回答
858 浏览

wcf - WCF-BasicHttp NTLM ESB 指南

我正在尝试访问位于 IIS 上的 asmx 服务,asmx 正在使用集成安全性我正在尝试使用在 ESB 指南 1.0 中配置的 wcf-basichttp 适配器调用它

我得到的错误是:

HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“NTLM”

我尝试在端点配置中设置:

任何想法都会被应用

0 投票
2 回答
1289 浏览

wcf - 没有 MEX 端点的带有 BasicHttpBinding 的 WCF 服务可以被绝对陌生的人利用吗?

据我了解:如果您没有 MEX 端点/WSDL,您的服务基本上是不可发现的。只有了解您的数据合同的人才能使用您的服务。

这个断言是否成立,或者是否有办法让互联网的恶意居民弄清楚如何调用/使用没有 MEX 端点的服务?

编辑:正如安德鲁指出的那样,这种策略不应该被认为是真正安全的。我想知道更多关于在与外部消费者的 QA 阶段是否可以避免随机滥用。