我在我的机器上创建了一个WCF服务,我在IIS下托管它,它工作正常。 然后我编译我的服务,并将编译代码放在远程服务器上。我在远程服务器上的IIS下托管它。但是当我尝试在我自己的机器上使用它时,会产生以下错误。
内容类型text / html;响应消息的charset = utf-8与绑定的内容类型不匹配(application / soap + xml; charset = utf-8)。如果使用自定义编码器,请确保正确实现IsContentTypeSupported方法。响应的前1024个字节是:'
然后我尝试使用浏览器在远程服务器上打开它。当我点击wsdl的链接时,它表示错误的请求或无效的主机名。可能是什么问题呢。
答案 0 :(得分:1)
“内容类型”错误实际上是在客户端生成的,因为IIS正在向您的soap请求发送HTML响应。原因通常是IIS中的虚拟目录未正确配置或WCF无法初始化。 IIS响应的内容有时可以在调试这些问题时非常有用。要检查该HTML,请使用Fiddler等工具在请求期间拦截和查看HTTP流量。
如果截获的HTTP流量没有帮助,则通过在WCF服务.svc文件所在的文件夹中创建一个简单的仅HTML页面(类似于test.html)来开始对IIS进行故障排除。尝试通过浏览器访问该页面。如果浏览器正确显示页面内容,则IIS正在运行,问题出在WCF配置中。根据您的两个错误,我会说您在服务的虚拟目录中有一个IIS配置问题。