繁体   English   中英

WCF Web服务在浏览器中可见,但在本地网络外部不起作用

[英]WCF web service visible in browser but doesn't work outside local network

我在Windows 2008 R2服务器上运行一个.NET 4.0 WCF Web服务。 我不在IT部门,但我知道服务器位于防火墙/路由器的后面,并且具有某种形式的URL重写规则。

从本地网络中,我可以与此Web服务正常通信。 当Web服务URL直接指向服务器以及URL指向路由器的地址时,它都可以工作。 我还可以使用这两种方式之一生成服务引用。

从本地网络外部,您可以在Web浏览器中浏览到.scv,然后会获得标准的wcf服务信息页面。 但是,如果我尝试使用此网址创建服务引用,则会收到错误消息

下载“ [Web服务URL] / _ vti_bin / ListData.svc / $ metadata”时出错。 请求失败,HTTP状态为400:错误的请求。 元数据包含无法解析的引用:“ [Web Service URL]”。 内容类型application / soap + xml; 服务[Web服务URL]不支持charset = utf-8。 客户端和服务绑定可能不匹配。 远程服务器返回错误:(415)由于内容类型为'application / soap + xml,因此无法处理该消息; charset = utf-8'不是预期的类型'text / xml; charset = utf-8'。如果服务在当前解决方案中定义,请尝试构建解决方案并再次添加服务引用。

Google告诉我内容类型为'application / soap + xml; charset = utf-8'不是预期的类型'text / xml; charset = utf-8'通常意味着客户端和服务器的绑定不匹配,但是这似乎不是问题所在,特别是如果这不是一个一致的问题。

如果我尝试使用Web服务,则会收到一般错误

服务器未提供有意义的回复; 这可能是由于合同不匹配,会话过早关闭或内部服务器错误引起的

不幸的是,此问题似乎仅在生产服务器上发生,这限制了我使用诊断工具的能力。

是什么导致WCF基本http Web服务在浏览器中可见,但不能正常工作? 另外,是什么原因导致它通过不同的终结点(URL重写)时认为绑定不匹配。

添加mex绑定,因为它将允许您公开元数据并在客户端上构建代理

看看这个为什么需要mex绑定( 什么是“ mexHttpBinding”?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM