【发布时间】:2013-10-30 22:14:22
【问题描述】:
这种情况让我有点难过。我在编写应用程序时创建了一个 Web 服务,并使用 Add Service Reference 来使用它,我可以输入 URL 和所有内容。它发现服务很好。假设内部服务是:http://MyMachine.test.com/Test/TestService.svc
我将其移至 SLL 下有 4 台机器和 1 个外部 URL 的位置。有一个负载平衡器可以定向到相应的服务器。假设外部 url 是 https://my.test.com 并且 Web 服务称为 Test/TestService。因此,它应该类似于 https://my.test.com/Test/TestService.svc。其他 4 台机器是:testa.test.com、testb.test.com、testc.test.com、testd。 test.com。
现在,如果我尝试从内部使用它,那么这 4 台机器中的任何一台都可以正常工作。如果我在连接到网络时尝试使用外部 URL:https://my.test.com/Test/TestService.svc 它也可以。
但是,当我转到另一台不在网络中的机器时,我尝试编写一个应用程序来使用外部 ip (url) 使用 Web 服务。我不工作。
我收到一条消息,大意是:
“URL https://my.test.com/TEST/TestService.svc 的文档未被识别为已知文档类型。 来自每种已知类型的错误消息可能会帮助您解决问题: - 来自“XML Schema”的报告是“无法识别文档格式(内容类型为 'text/html; charset=UTF-8')。”。 - 来自“DISCO 文档”的报告是“下载时出错 'http://testa.test.com/Test/TestService.svc?disco'.'。 - 无法连接到远程服务器 - 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 10.10.10.110:80 - 来自“https://my.test.com/Test/TestService.svc”的报告是“无法识别文档格式(内容类型为 'text/html; charset=UTF-8')。”。 - 来自“WSDL 文档”的报告是“无法识别文档格式(内容类型为 'text/html; charset=UTF-8')。”。 元数据包含无法解析的引用:“https://my.test.com/Test/TestService.svc”。 内容类型应用程序/soap+xml;服务 https://my.test.com/Test/TestService.svc 不支持 charset=utf-8。客户端和服务绑定可能不匹配。 远程服务器返回错误:(415)无法处理消息,因为内容类型'application/soap+xml; charset=utf-8' 不是预期的类型 'text/xml;字符集=utf-8'.. 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。"
我是外部的,所以它当然不会连接到 10.10.10.110 或其名称为 testa.test.com。但为什么它甚至在那里?我正在尝试使用用于外部位置的 IP/名称(即“https://my.test.com/Test/TestService.svc”)从另一台机器获取它
有没有人知道这可能是什么原因以及如何解决?
【问题讨论】:
-
我找到了一个部分解决方案:
但是,使用客户端应用程序我现在知道my.test.com/test/TestService.svc 上没有端点监听并查看内部异常,它表明远程setver 有404。我该如何解决? -
我本以为设置
会有助于负载均衡器,但端点似乎仍然找不到它。但是我仍然收到一个错误,即my.test.com/Test/TestService.svc 没有端点,并且内部文本中有 404 消息。
标签: c# asp.net wcf web-services load-balancing