ASMX Web服务和错误: - 内容类型text / html; charset =响应消息的UTF-8与内容类型不匹配

时间:2015-03-31 18:52:05

标签: c# web-services asmx

我试图调用在我的asp.net Web应用程序项目中运行的Web服务。我只是搜索谷歌的错误信息,发现很多链接。所有人都说你的网络服务返回错误。

以下我尝试调用Web服务的方式。

第一路

我在win表单中添加了Web服务的服务引用,并在下面进行了调用。

ServiceReference1.SearchDataIndexSoapClient Client = new ServiceReference1.SearchDataIndexSoapClient();
        ServiceReference1.AuthHeader authHead = new ServiceReference1.AuthHeader();
        authHead.Password = "Admin";
        authHead.Username = "Admin";


        Console.WriteLine(client.StartIndex(authHead));

最后一行返回服务器500错误,详细信息文本如"内容类型text / html; charset =响应消息的UTF-8与绑定的内容类型不匹配(text / xml; charset = utf-8)"

第二路

我使用HttpWebRequest类在没有代理的情况下调用我的Web服务,然后也得到相同的错误。

第三路

尝试由fiddler打电话。只需提供网络服务网址和正文。获取相同的错误消息,但是当我从fiddler指定内容类型text / xml时,我看到Web服务正常工作并返回正确的结果。

所以只是无法理解我可以通过fiddler正确调用我的Web服务但是当我尝试通过HttpWebRequest调用或添加Web引用然后收到错误。我在使用HttpWebRequest类时也设置了内容类型= text / xml,但没有运气。

请帮助我理解这个问题,并指导我如何修复它,以便通过HttpWebRequest类或Web引用进行调用。感谢

1 个答案:

答案 0 :(得分:0)

正如您在网络上看到的那样,Web服务正在抛出错误是正确的。您收到的有关内容类型的异常是因为当客户端的Web服务引用期望(text / xml)时,错误服务会显示HTML页面(text / html)。希望有意义!

根本原因是您的Web服务出错。从您的代码中,您可以确认您的Web服务方法是否期望AuthHeader类型的参数,或者是否在SoapHeader中是预期的。

如果期望参数类型为AuthHeader,请在Web服务方法中放置断点或记录以进一步调试。

相关问题