我在Windows 2008 R2服务器上运行.NET 4.0 WCF Web服务。我不在IT,但我知道服务器是防火墙/路由器的后面,并且有一些URL重写规则。
在本地网络内,我可以很好地与此网络服务进行通信。当web服务url直接指向服务器时以及url指向路由器的地址时,它都可以工作。我也可以使用以下任何一种方式生成服务引用。
在本地网络外部,您可以在Web浏览器中浏览.scv,然后获得标准的wcf服务信息页面。但是,如果我尝试使用此URL创建服务引用,我会收到错误
下载' [网络服务网址] / _ vti_bin / ListData.svc / $ metadata'时出错。 请求失败,HTTP状态为400:错误请求。 元数据包含无法解析的引用:' [Web服务URL]'。 内容类型application / soap + xml;服务[Web服务URL]不支持charset = utf-8。客户端和服务绑定可能不匹配。 远程服务器返回错误:(415)无法处理消息,因为内容类型' application / soap + xml;字符集= UTF-8'不是预期的类型&text; / xml;字符集= UTF-8' .. 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
Google告诉我内容类型' application / soap + xml;字符集= UTF-8'不是预期的类型&text; / xml; charset = utf-8' 通常意味着客户端和服务器绑定不匹配,但它看起来不像是问题,特别是如果它的问题不是一致的问题。
如果我尝试使用网络服务,我会收到一般错误
服务器未提供有意义的回复;这可能是由合同不匹配,过早的会话关闭或内部服务器错误引起的
不幸的是,这个问题似乎只发生在生产服务器上,这限制了我使用诊断工具的能力。
什么可能导致WCF基本http Web服务在浏览器中可见,但不起作用?此外,什么会导致它认为通过不同的端点(URL重写?)到达时绑定不匹配