2011-05-17 182 views
1

我在我的机器上创建了一个WCF服务,我在IIS下托管它,它工作正常。 然后我编译我的服务,我把编译代码放在远程服务器上。我托管它在远程服务器上的IIS下。但是当我尝试在自己的机器上使用它时,它会生成以下错误。WCF远程服务器上的主机

内容类型text/html;响应消息的charset = utf-8与绑定的内容类型(application/soap + xml; charset = utf-8)不匹配。如果使用自定义编码器,请确保IsContentTypeSupported方法正确实施。响应的前1024个字节是:'

然后我尝试使用浏览器在远程服务器上打开它。当我点击wsdl的链接时,它说错误的请求或无效的主机名。可能是什么问题呢。

回答

1

“内容类型”错误实际上是在客户端产生的,因为IIS正在向您的soap请求发送HTML响应。原因通常是IIS中的虚拟目录未正确配置,或者WCF未能初始化。 IIS响应的内容有时可以真正帮助您调试这些问题。要检查该HTML,请使用像Fiddler这样的工具在请求期间拦截并检查HTTP流量。

如果拦截的HTTP流量没有帮助,那么通过在WCF服务.svc文件所在的文件夹中创建一个简单的仅HTML页面(类似test.html)来启动对IIS的疑难解答。尝试通过浏览器访问该页面。如果浏览器正确显示页面内容,则IIS正在工作,问题出在WCF配置中。根据你的两个错误,我会说你在服务的虚拟目录中有一个IIS配置问题。