我已经在本地机器上创建了WCF服务。我的本地机器使用Windows 7 RC1,因此web服务器是IIS 7。然而,我的生产机器是使用IIS 6的Windows 2003。
当我试图在本地环境中引用该服务时,一切正常。但是,当我将我的服务推广到我的生产机器,并试图引用该服务时,我会收到一个错误。错误说:
错误:无法从http://www.thedomain.com/theService.svc?wsdl获取元数据
如果这是您可以访问的Windows (R)通信基础服务,请检查是否已启用指定地址的元数据发布。有关启用元数据发布的帮助,请参阅http://go.microsoft.com/fwlink/?LinkId=65455上的MSDN文档。
元数据交换错误URI:http://www.thedomain.com/theService.svc?wsdl
元数据包含无法解析的引用:“http://www.thedomain.com/theService.svc?wsdl”。
服务http://www.mydomain.com/myService.svc?wsdl不支持Content应用程序/soap+xml;charset=utf-8。客户端绑定和服务绑定可能不匹配。
远程服务器返回一个错误:(415)无法处理消息,因为内容类型'application/soap+xml;charset=utf-8‘不是预期类型'text/xml;charset=utf-8’。
我需要在IIS 6中做些什么才能让WCF服务开始工作吗?我真的很困惑,为什么它在当地工作得很好,但在生产中却不是很好。
谢谢!
发布于 2009-08-03 14:53:20
我可以想到四种可能性:
上不支持的较新绑定。
IIS 6支持的绑定是basicHttpBinding和wsHttpBinding。请参见:
http://msdn.microsoft.com/en-us/library/cc949086.aspx
希望这能有所帮助
发布于 2009-08-03 13:01:41
您已经锁定了这两种环境之间的明显区别--一种是运行IIS 6,另一种是运行IIS 7。这可能是一种不同,但不是导致问题的原因。
您比较过这两种环境中的web.config文件吗?
从错误消息来看,WCF似乎正在生产机器上运行,但是获取元数据存在问题。你试过在生产中运行这项服务吗?即使元数据检索不起作用,运行它也是可能的。
另外,如果你不介意我在这里讲一点哲学的话,你刚刚找到了安装服务器的理由。事实上,"1“和"2”之间的差别比"2“和"3”之间的差别要大得多。从开发环境直接过渡到生产,您第一次遇到“多环境”的问题。这类似于单数和复数之间的区别。
您还首次遇到了“不同环境”的问题。这类似于“相同的”和“不同的”之间的区别。
在中间添加一个分期系统可以使您有机会提前解决所有这些问题,这样当您从阶段过渡到生产时,可能仍然存在“差异”问题,但您不会再次遇到“单数与复数”的问题--您已经解决了它们。
https://stackoverflow.com/questions/1222213
复制相似问题