0

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

当我想将浏览器用作客户端时。我转到http://localhost:9001/Name/WebService/WebAPI并看到 Web 服务(带有一些有关方法的信息的 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 客户端”,这是我在互联网上找到的text/xml内容类型。它工作正常。

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

4

1 回答 1

0

用 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
随意如果有什么我可以帮忙的,请告诉我。

于 2019-09-02T09:53:58.020 回答