【问题标题】:Is it Possible to consume WCF service (which is hosted as Windows Service Hosting) through httpwebrequest?是否可以通过 httpwebrequest 使用 WCF 服务(托管为 Windows 服务托管)?
【发布时间】:2019-08-29 19:53:39
【问题描述】:

我必须创建一个 Windows 服务来读取客户客户端应用程序的一些机器数据。但是,我没有选择在 IIS 中托管服务。客户只能使用 webrequest 通过 web url 使用服务。 是否有可能使用 webrequest 使用托管在 windows 服务中的 WCF 服务。

托管方法不应该在 IIS 中,使用服务应该是一种 webrequest(我对此没有任何想法)。 客户端只会调用 net.tcp,http URL 类型来消费服务。

提前致谢。

【问题讨论】:

  • 这里的答案可能会有所帮助 - stackoverflow.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创建。

标签: c# rest wcf service


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2013-08-06
    • 2012-04-28
    • 1970-01-01
    相关资源
    最近更新 更多