客户端发现响应内容类型为“text/html”,但应为“text/xml”.

猫熊 2014-07-08 04:15:59
如题:
一个客户端,一个web服务;
客户端发现响应内容类型为“text/html”,但应为“text/xml”.不是经常出现;

web服务处理很慢(业务,数据),
当客户端提交很多数据时,就会出现这种情况;
系统出现错误提示,在次提交 就可以了;

已经做的内容;
1、web.config中添加了配置;
<WebServer>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</WebServer>
2、另在所哟xxxx.asmx方法中添加了
try{}catch(exception ex){throw new Exception("<err>" + ex.Message.ToString() + "</err>");}
ps:<err>用于截取标示;




哪里出问题了;
...全文
2920 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
BrightFireOfCy 2014-07-11
  • 打赏
  • 举报
回复
引用 9 楼 a135a135 的回复:
[quote=引用 8 楼 save4me 的回复:] 调用一个不存在的Web Service方法,服务器应该就返回出错了。你说关闭IIS,服务器还怎么返回信息呀
调用不存在的 web service方法, 客户端提示“服务器未能识别http头 soapaction的值” 不是 html/txtl应该为 html/xml类型的那种提示;[/quote] 用soap的方式调用webservice,但是request体里面传个txt
猫熊 2014-07-11
  • 打赏
  • 举报
回复
引用 8 楼 save4me 的回复:
调用一个不存在的Web Service方法,服务器应该就返回出错了。你说关闭IIS,服务器还怎么返回信息呀
调用不存在的 web service方法, 客户端提示“服务器未能识别http头 soapaction的值” 不是 html/txtl应该为 html/xml类型的那种提示;
save4me 2014-07-10
  • 打赏
  • 举报
回复
调用一个不存在的Web Service方法,服务器应该就返回出错了。你说关闭IIS,服务器还怎么返回信息呀
猫熊 2014-07-10
  • 打赏
  • 举报
回复
引用 6 楼 BrightFireOfCy 的回复:
返回text/html的时候应该是服务器端出错了,而且不是在你的代码里面。 这个时候返回的是.net的webservices的默认的错误页面,你可以在客户端把这个html打出来看看, 里面会有Exception信息和stacktrace
引用 5 楼 findcaiyzh 的回复:
估计是服务器端出错,返回的是错误页面。 最好能在客户端log服务器返回的错误。
改动了些,想在本机做测试, 代码加 死循环内存溢出, 调用时关闭iis,改名................等 但没能重现 返回 html/txt错误 是c/s结构的 客户端调用时关闭iis时,客户端提示无法从传输中读取数据, 但IE中打开 测试时,显示的是无法显示此页<!DOCTYPE HTML><html>xxxxxxxxx</html> 想在本地重现任何一种 html/txt ,应该是html/xml 的错误提示(客户端) 有什么方法么
猫熊 2014-07-09
  • 打赏
  • 举报
回复
引用 2 楼 save4me 的回复:
try catch是捕获你代码的错误,如果你的服务器出错,比如你说的超时,就可能返回出错处理页面,这个时候就不是你的服务返回的text/xml格式那个页面,而是text/html了
有方法捕捉么?
BrightFireOfCy 2014-07-09
  • 打赏
  • 举报
回复
返回text/html的时候应该是服务器端出错了,而且不是在你的代码里面。 这个时候返回的是.net的webservices的默认的错误页面,你可以在客户端把这个html打出来看看, 里面会有Exception信息和stacktrace
宝_爸 2014-07-09
  • 打赏
  • 举报
回复
估计是服务器端出错,返回的是错误页面。 最好能在客户端log服务器返回的错误。
save4me 2014-07-09
  • 打赏
  • 举报
回复
不知道你的客户端是B/S还是C/S的,但是原理是类似的,就是在客户端判断服务器返回的状态,比如status == 200的时候,说明服务器返回正常,如果是4XX是客户端错误,如果是5XX是服务器错误等等。只有在服务器返回200的状态的时候,你处理XML,否则,进行相应的错误处理,比如提示用户服务器错误或超时,重新提交等等。 先参考一下下面这个用ajax调用WebService的例子,看一下他处理服务器返回状态的方法。 XmlHttpRequest调用Webservice的一点心得
引用 3 楼 a135a135 的回复:
[quote=引用 2 楼 save4me 的回复:] try catch是捕获你代码的错误,如果你的服务器出错,比如你说的超时,就可能返回出错处理页面,这个时候就不是你的服务返回的text/xml格式那个页面,而是text/html了
有方法捕捉么?[/quote]
save4me 2014-07-08
  • 打赏
  • 举报
回复
try catch是捕获你代码的错误,如果你的服务器出错,比如你说的超时,就可能返回出错处理页面,这个时候就不是你的服务返回的text/xml格式那个页面,而是text/html了
猫熊 2014-07-08
  • 打赏
  • 举报
回复
也做了其他几种测试; web服务方法中添加 thread.sleep(36000); 客户端提示 “操作超时” 将web服务发布并添加到 vs 进程中,并添加断点,调用web服务时,会卡主,客户端提示“”无法从传输中读取数据“ 都不是 html/text类型错误; 纳闷了,哪里错了,而却,try()cath(){}捕捉不到;

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧