我是JAVA服务器端,winform客户端,当然这个并不重要。
当调用WebService的对象被实例化后,我更改他的url,然后通过Discover方法试图绑定URL结果报错,说地址下载下载“xxx”时出错。这里我的地址不加?wsdl提示错误为“XXX”时出错,若是加了?wsdl错误提示为:在URL“XXX”处找不到发现文档。
如果我不用Discover方法绑定,再次调用WebService方法时会报错为:客户端发现响应内容类型为“”,但应为“text/xml”,请求失败,响应为空!能给出动态更改WebService地址步骤就最好。
在线等,谢谢。

解决方案 »

  1.   

    http://www.cnblogs.com/greatandforever/archive/2009/08/18/1548584.html
      

  2.   

    我读取配置文件什么都没有问题,就是在最后更改URL没成功!
      

  3.   

    呵呵,最近也在做这个,好像没出什么问题。
    代码贴出来你看看吧。1.Form窗体的后台代码,示例web引用类:private InPhase.Service wsInPhase = GetService();2.调用GetService方法,读取xml配置中的路径    public static ELab.InPhase.Service GetService()
        {
            ELab.InPhase.Service ws = new ELab.InPhase.Service();
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load(Application.StartupPath + "\\config.xml");            XmlNode node = doc.SelectSingleNode("//WebServiceAddress");
                string wsUrl = "";
                if (null != node)
                {
                    wsUrl = node.InnerXml.Trim();
                }
                ws.Url = wsUrl;
            }
            catch (FileNotFoundException notFile)
            {
                // MessageBox.Show("因缺少ws_config.xml配置文件,而无法找到Web站点的地址!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                //  MessageBox.Show("访问Web站点时地址未找到!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }        return ws;
        }就这样啦。
    创建web引用时,最好给它建个默认地址,再用代码去修改。
      

  4.   

    LS,只有更改个URL就行了?更改后不用Discover么?你那个URL带不带?wsdl。。
      

  5.   

    我调用的网站地址是这样的:
    http://www.abc.com/test/Service.asmx你的带wsdl,没用过就不知道啦。
      

  6.   

    已知WS目录和服务名的时候,直接在WINFORM的APP.CONFIG增加个WSURL配置,
    在生成WS实例之后,MyWS.URL = 读取的WSURL配置
    就可以正常用了.
    每次发布只需要修改WINFORM的APP.CONFIG就可以.