当前位置: 代码迷 >> PB >> pb12.5联接c#webservice出现Unexpected return Content-Type: text/html; charset=utf-8
  详细解决方案

pb12.5联接c#webservice出现Unexpected return Content-Type: text/html; charset=utf-8

热度:153   发布时间:2016-04-29 06:34:30.0
pb12.5连接c#webservice出现Unexpected return Content-Type: text/html; charset=utf-8
调用的函数返回值是字符串,但是soap调用就出现这个Unexpected return Content-Type: text/html; charset=utf-8,没法继续下去。

------解决方案--------------------
看错误提示,应该是字符集的问题,看一下webservice里的配置,是不是和客户端一致
------解决方案--------------------
引用:
谢谢版主,昨天晚上我用QQ打扰你。现在问题解决了。这个问题很诡异
我的环境是windows2008 server64bit+IIS7+VS2008 C#编写的webservice,使用pb12.5调用。
具体问题是这样的:
1.我在vs2008调试时出现http://localhost:8367能够出现调试方法列表,此时选择调试方法输入参数,能够执行没有问题,但是发布到IIS上以后,直接使用pb12.5调用出现标题的错误,百思不得其解。
2.后来通过pb12.5直接连接调试服务http://localhost:8367,能够正常执行。说明是IIS配置的问题,通过浏览器直接访问也是不能正常显示方法列表,确信是IIS的问题。
3.根据浏览器直接访问的显示出现的错误信息,找到如下方法解决:
   1)webservice目录不能放在默认网站的根目录下,必须放在其它地方,然后通过添加虚拟目录才行。
   2)网站的应用程序池假设是DefaultAppPool,必须设置该应用程序池的.NET FrameWork版本是v2.0典型,    
      因为出现这个错误--------->报错:错误代码 0x800700b7 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节。
   3)如果出现“不是有效的 Win32 应用程序”,那么应用程序池必须支持32位,即在iis管理->应用程序池->高级设置->启用32位应用程序 设为true 。
   4).NET Framework v2.0安装,经过检查发现是由于先安装vs2008后安装iis的缘故,只需重新注册下AspNet就可以了,具体步骤如下
     (1) 打开运行,输入cmd进入到命令提示符窗口。
     (2) 进入到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 目录。
     (3) 输入aspnet_regiis.exe –i 执行既可
           注意:如果系统为64位 第二步的路径为C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727
    5)如果出现权限问题,请将C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config里的allowDefinition="MachineToApplication"替换成allowDefinition="Everywhere" 。

 此外,版主,您建议我使用pbwsclient125.pb替代pbsoapclient125.pbd,我看没有什么差别,都能正常使用啊,请解释一下。


那两个pbd是有区别的,建议用pbwsclient
  相关解决方案