是否可以通过 httpwebrequest 使用 WCF 服务(托管为 Windows 服务托管)?
Posted
技术标签:
【中文标题】是否可以通过 httpwebrequest 使用 WCF 服务(托管为 Windows 服务托管)?【英文标题】:Is it Possible to consume WCF service (which is hosted as Windows Service Hosting) through httpwebrequest? 【发布时间】:2019-08-29 19:53:39 【问题描述】:我必须创建一个 Windows 服务来读取客户客户端应用程序的一些机器数据。但是,我没有选择在 IIS 中托管服务。客户只能使用 webrequest 通过 web url 使用服务。 是否有可能使用 webrequest 使用托管在 windows 服务中的 WCF 服务。
托管方法不应该在 IIS 中,使用服务应该是一种 webrequest(我对此没有任何想法)。 客户端只会调用 net.tcp,http URL 类型来消费服务。
提前致谢。
【问题讨论】:
这里的答案可能会有所帮助 - ***.com/questions/1485061/… ... 可以通过 HttpWebRequest 使用 WCF 服务,但是以正确的格式获取 XML 数据可能有点麻烦。 感谢您的回复@sam。提供的链接上的讨论是关于在没有 IIS 的情况下托管服务。我知道将 wcf 服务托管为 Windows 服务和自托管,但要使用这两种类型的客户端应用程序需要服务引用。但在我的情况下,客户端只能通过 URL 使用服务。 (无法将服务引用 dll 添加到客户端)客户端是 SAP。 啊,是的 - 好吧,ServiceHost 将让您在没有 IIS 的情况下启动一个小型 HTTP 服务器。通过 HTTP 使用 XML WCF 服务就是让 XML 具有正确的形状——您不需要通常会在 Visual Studio 中添加的服务引用,这些只是帮助您轻松创建 XML 请求,但是完全可以自己创建它们并使用普通的旧 HTTP 请求,只是需要做更多的工作。 @sam 能否提供一些示例代码或项目的链接,谢谢。 如您所知,wcf 能够创建restful 风格的服务,它依赖于Http 协议。 docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/… 可以被不同Http动词的Http请求消费,可以由HttpWebRequest创建。 【参考方案1】:是的 - WCF 服务只是 SOAP 服务,因此很可能使用任何体面的 HTTP 客户端调用它们。
我建议您使用 Postman 之类的工具来调试您的服务,这应该很清楚 - 这篇博文就是这样:https://code.firozansari.com/2017/10/21/making-wcf-service-request-using-postman/
您还可以查看这些示例,这些示例演示了使用其他语言的简单 HTTP 客户端调用 WCF SOAP 服务:
http://mkonrad.blogspot.com/2013/02/call-custom-wcf-soap-service-from.html
https://www.aspsnippets.com/Articles/Call-Consume-REST-WCF-Service-SVC-using-WebClient-in-ASPNet-with-C-and-VBNet.aspx
【讨论】:
以上是关于是否可以通过 httpwebrequest 使用 WCF 服务(托管为 Windows 服务托管)?的主要内容,如果未能解决你的问题,请参考以下文章
WebClient、HttpWebRequest 和 HttpClient 的最大并发请求数
webrequest 和 httpwebrequest 有啥区别