【问题标题】:Communication between JavaScript and WCF Service Library (WCF Test Client)JavaScript 和 WCF 服务库之间的通信(WCF 测试客户端)
【发布时间】:2019-08-31 16:10:25
【问题描述】:

当我调试 Web 服务项目(在 Visual Studio 中)“测试客户端 WCF”启动时,有一个 Web 服务(WCF 服务库)(所以我猜它是通过测试客户端托管的)。我有一个名为“Test”的 Web 服务方法,它返回字符串。当我使用测试客户端 WCF“调用”该方法时 - 它可以工作。

当我想将浏览器用作客户端时。我去http://localhost:9001/Name/WebService/WebAPI,我看到了网络服务(带有一些方法信息的xml)。 现在我想用 JavaScript 来调用那个 Test 方法。

我创建了一个类似于https://stackoverflow.com/a/11404133 的客户端,并将sr 变量(SOAP 请求)替换为一个请求,该请求位于“测试客户端 WCF”中的测试方法的 XML 部分,对于我选择的 url http://localhost:9001/Name/WebService/WebAPI 。我尝试了那个 JavaScript 客户端,但出现了一些客户端错误 -

content-type 'text-xml' 无效,需要服务器 'application/soap+xml; charset=utf-8'

(不幸的是,我现在无法访问网络服务,所以我不知道错误的数量和确切的消息,但除了内容类型之外没有其他信息)。所以我将请求标头更改为'application/soap+xml; charset=utf-8',但随后出现错误——这告诉我:

消息无法在接收方处理,因为 EndpointDispatcher 处的 AddressFilter 不匹配。检查 发送方和接收方的 EndpointAddresses 一致

(或者类似的东西 - 我必须把它翻译成英文)

我还尝试了使用现有服务的“JavaScript 客户端”,这是我在 Internet 上找到的并使用 text/xml 内容类型。而且效果很好。

请问您有什么建议 - 如何用 JavaScript 调用 Test 方法?谢谢。

【问题讨论】:

    标签: javascript c# wcf soap wcf-library


    【解决方案1】:

    在 Javascript 中调用的服务称为 Restful 风格的服务。 WCF 也能够创建一个 Restful 风格的服务。但是我们需要设置一些额外的配置。当我们在 Visual Studio 中测试服务时,该服务在 IIS express 中托管。它使用默认绑定配置来托管服务(BasicHttpBinding),称为 SOAP Web 服务。调用服务的通用方法是利用服务代理类,这就是 WCFTestClient 所做的。
    如果我们想通过 JavaScript 调用服务,这里有一个简单的演示,希望对你有用。请注意,项目模板是 WCF 服务应用程序而不是服务库项目。
    https://stackoverflow.com/questions/56873239/how-to-fix-err-aborted-400-bad-request-error-with-jquery-call-to-c-sharp-wcf/56879896#56879896
    如果有什么我可以帮忙的,请随时告诉我。

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2014-02-20
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多