RT,PHP的webservice接口是:http://user.tlx.gov.cn/services/tonglingzbContent.php?wsdl
我的代码是
 public class WebServiceHelper
    {
        #region 动态调用WebService动态调用地址
        /// < summary>           
        /// 动态调用web服务         
        /// < /summary>          
        /// < param name="url">WSDL服务地址< /param> 
        /// < param name="methodname">方法名< /param>           
        /// < param name="args">参数< /param>           
        /// < returns>< /returns>          
        public static object InvokeWebService(string url, string methodname, object[] args)
        {
            return WebServiceHelper.InvokeWebService(url, null, methodname, args);
        }
       /// <summary>
       /// 动态调用web服务
       /// </summary>
        /// <param name="url">WSDL服务地址</param>
       /// <param name="classname">服务接口类名</param>
        /// <param name="methodname">方法名</param>
       /// <param name="args">参数值</param>
       /// <returns></returns>
        public static object InvokeWebService(string url, string classname, string methodname, object[]args)
        {
            string @namespace = "EnterpriseServerBase.WebService.DynamicWebCalling";
            if ((classname == null) || (classname == ""))
            {
                classname = WebServiceHelper.GetWsClassName(url);
            }            //try
            //{
            //获取WSDL
            WebClient wc = new WebClient();
            Stream stream = wc.OpenRead(url + "?wsdl");            ServiceDescription sd = ServiceDescription.Read(stream);
            ServiceDescriptionImporter sdi = new ServiceDescriptionImporter();
            sdi.AddServiceDescription(sd, "", "");
            CodeNamespace cn = new CodeNamespace(@namespace);            //生成客户端代理类代码
            CodeCompileUnit ccu = new CodeCompileUnit();
            ccu.Namespaces.Add(cn);
            sdi.Import(cn, ccu);
            CSharpCodeProvider icc = new CSharpCodeProvider();            //设定编译参数
            CompilerParameters cplist = new CompilerParameters();
            cplist.GenerateExecutable = false;
            cplist.GenerateInMemory = true;
            cplist.ReferencedAssemblies.Add("System.dll");
            cplist.ReferencedAssemblies.Add("System.XML.dll");
            cplist.ReferencedAssemblies.Add("System.Web.Services.dll");
            cplist.ReferencedAssemblies.Add("System.Data.dll");            //编译代理类
            CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);
            if (true == cr.Errors.HasErrors)
            {
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                foreach (System.CodeDom.Compiler.CompilerError ce in cr.Errors)
                {
                    sb.Append(ce.ToString());
                    sb.Append(System.Environment.NewLine);
                }
                throw new Exception(sb.ToString());
            }            //生成代理实例,并调用方法
            System.Reflection.Assembly assembly = cr.CompiledAssembly;
            Type t = assembly.GetType(@namespace + "." + classname, true, true);
            object obj = Activator.CreateInstance(t);
            System.Reflection.MethodInfo mi = t.GetMethod(methodname);            return mi.Invoke(obj, args);
        }
        private static string GetWsClassName(string wsUrl)
        {
            string[] parts = wsUrl.Split('/');
            string[] pps = parts[parts.Length - 1].Split('.');
            return pps[0];
        }
        #endregion
    }出现的问题:System.TypeLoadException: Could not load type 'EnterpriseServerBase.WebService.DynamicWebCalling.tonglingzbContent' from assembly 'nqoo0cfw, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
   at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
   at Epoint.JSGCZtbMis_TL.Bizlogic.WebServiceHelper.InvokeWebService(String url, String classname, String methodname, Object[] args)
   at ss.WebServiceHelper.InvokeWebService(String url, String methodname, Object[] args)
   at ss.Commons.YAQGGTS.SendData(ObjTuiSongMsg objTuiSongMsg, String& errMsg)
   at ss.Commons.YAQGGTS.PublishZBGG_JSGC(String ssGuid)
请问该如何修改代码

解决方案 »

  1.   

    @ microtry ,@Return_false ,@starfd 大神求带啊
      

  2.   

    可以添加web引用的话就通过代理的方式,否则就通过Post报文的方式呗
      

  3.   

    @添加web引用的话,出现下面这个问题
    System.Net.WebException: The request failed with the error message:
    --
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>302 Found</title>
    </head><body>
    <h1>Found</h1>
    <p>The document has moved <a href="/">here</a>.</p>
    </body></html>--.
       at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
       at Epoint.JSGCZtbMis_TL.Bizlogic.YAQ_GGTS.tonglingzbContentwsdl.Push(String key, String curTime, String BizID, String user_id, String branch_id, String channel_id, String title, String prefix_title, String subhead, String description, String body, String title_bold, String title_color, String thumb_name, String template, String release_date, String tag, String author, String copy_from, String link_url, String status, String obj)
       at Epoint.JSGCZtbMis_TL.Bizlogic.Commons.YAQGGTS.SendData(ObjTuiSongMsg objTuiSongMsg, String& errMsg)
    完全不知道该怎么做啊