动态构建WebService时出现异常

问题描述

用的是网上很多人说的方法:///<summary>///根据指定的信息,调用远程WebService方法///</summary>///<paramname="url">WebService的http形式的地址</param>///<paramname="namespace">欲调用的WebService的命名空间</param>///<paramname="classname">欲调用的WebService的类名(不包括命名空间前缀)</param>///<paramname="methodname">欲调用的WebService的方法名</param>///<paramname="args">参数列表</param>///<returns>WebService的执行结果</returns>///<remarks>///如果调用失败,将会抛出Exception。请调用的时候,适当截获异常。///异常信息可能会发生在两个地方:///1、动态构造WebService的时候,CompileAssembly失败。///2、WebService本身执行失败。///</remarks>///<example>///<code>///objectobj=InvokeWebservice("http://localhost/GSP_WorkflowWebservice/common.asmx","Genersoft.Platform.Service.Workflow","Common","GetToolType",newobject[]{"1"});///</code>///</example>publicstaticobjectInvokeWebservice(stringurl,string@namespace,stringclassname,stringmethodname,object[]args){System.Net.WebClientwc=newSystem.Net.WebClient();System.IO.Streamstream=wc.OpenRead(url+"?WSDL");System.Web.Services.Description.ServiceDescriptionsd=System.Web.Services.Description.ServiceDescription.Read(stream);System.Web.Services.Description.ServiceDescriptionImportersdi=newSystem.Web.Services.Description.ServiceDescriptionImporter();sdi.AddServiceDescription(sd,"","");System.CodeDom.CodeNamespacecn=newSystem.CodeDom.CodeNamespace(@namespace);System.CodeDom.CodeCompileUnitccu=newSystem.CodeDom.CodeCompileUnit();ccu.Namespaces.Add(cn);sdi.Import(cn,ccu);Microsoft.CSharp.CSharpCodeProvidercsc=newMicrosoft.CSharp.CSharpCodeProvider();System.CodeDom.Compiler.ICodeCompilericc=csc.CreateCompiler();System.CodeDom.Compiler.CompilerParameterscplist=newSystem.CodeDom.Compiler.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");System.CodeDom.Compiler.CompilerResultscr=icc.CompileAssemblyFromDom(cplist,ccu);if(true==cr.Errors.HasErrors){System.Text.StringBuildersb=newSystem.Text.StringBuilder();foreach(System.CodeDom.Compiler.CompilerErrorceincr.Errors){sb.Append(ce.ToString());sb.Append(System.Environment.NewLine);}thrownewException(sb.ToString());}System.Reflection.Assemblyassembly=cr.CompiledAssembly;//在构建一个java写的WebService下面这行抛出了异常Typet=assembly.GetType(@namespace+"."+classname,true,true);objectobj=Activator.CreateInstance(t);System.Reflection.MethodInfomi=t.GetMethod(methodname);returnmi.Invoke(obj,args);}异常信息为:未能从程序集“rppj7ib3,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”中加载类型“Account”。各位看看最可能什么地方出错了?谢了先

解决方案

解决方案二:
自己顶一下,怎么没人关注咧
解决方案三:
该回复于2009-01-19 16:30:28被版主删除

时间: 2024-12-30 14:20:50

动态构建WebService时出现异常的相关文章

.net动态调用webservice时,如果参数为实体怎么办?

问题描述 .net动态调用webservice时,如果参数为实体怎么办? //生成代理实例,并调用方法 System.Reflection.Assembly assembly = cr.CompiledAssembly; Type t = assembly.GetType(@namespace + "." + classname, true, true); object obj = Activator.CreateInstance(t); System.Reflection.Metho

asp.net 动态调用webservice偶尔出现异常。只有4个币了,望理解。

问题描述 asp.net 动态调用webservice偶尔出现异常.只有4个币了,望理解. 异常信息:System.Runtime.InteropServices.ExternalException: Cannot execute a program. The command being executed was "C:WINDOWSMicrosoft.NETFrameworkv2.0.50727csc.exe" /noconfig /fullpaths @"C:WINDOW

关于用结构体作参数动态调用webservice.

问题描述 protectedvoidButton1_Click(objectsender,EventArgse){stringwebServiceUrl="http://192.168.16.80/WebService_TH/Service1.asmx?wsdl";mmkk=newmm();kk.U9UserID=123456;kk.H01="0001";kk.H06="abcd";kk.kehubianm="000006";

使用axis调用webservice时 服务端接收到的参数为null

问题描述 如题,我的webservice是在myeclipse10下基于JAX-WS的WebService开发的,过程如下链接:http://www.cnblogs.com/alden/archive/2012/02/08/2343208.html发布的时候使用Tomcat7,可以正常访问服务端的代码如下:packagecn.com.wzh;publicclassmain{publicStringcallService(StringTransNo,StringInxml){if("test&qu

LINQ to SQL运行时动态构建查询条件

在进行数据查询时,经常碰到需要动态构建查询条件.使用LINQ实现这个需求可能会比以前拼接SQL语 句更麻烦一些.本文介绍了3种运行时动态构建查询条件的方法.本文中的例子最终实现的都是同一个功 能,从Northwind数据库Customers表中搜索出CompanyName列带有keywords中任意元素的项.keywords是 个字符串数组,该数组长度在编译时是不确定的.思路及方法说明写在代码注释中. 1.表达式树 1 public static IEnumerable<Customers>

释放动态申请数组内存-C++中动态申请的数组内存异常时内存释放问题

问题描述 C++中动态申请的数组内存异常时内存释放问题 在C++的一个方法中动态申请了一段数组的内存,还未通过delete[] 语句释放这段内存,方法异常,此时代码不会执行后面的delete[] 语句了,那么前面申请的这段数组内存怎么释放? C++中的auto_prt只支持单个对象动态内存的管理,对于数组动态申请的内存怎么管理? 解决方案 应该在运行期系统自动帮你归还,前提是你的数组是由class构成,但不是内置类型.详见EFFECTIVE C++第三版条款52(写了placement new也

Web Service学习笔记:动态调用WebService

原文:Web Service学习笔记:动态调用WebService 多数时候我们通过 "添加 Web 引用..." 创建客户端代理类的方式调用WebService,但在某些情况下我们可能需要在程序运行期间动态调用一个未知的服务.在 .NET Framework 的 System.Web.Services.Description 命名空间中有我们需要的东西. 具体步骤: 1. 从目标 URL 下载 WSDL 数据. 2. 使用 ServiceDescription 创建和格式化 WSDL

动态调用 WebService

问题描述 http://www.rainsts.net/article.asp?id=304多数时候我们通过"添加Web引用..."创建客户端代理类的方式调用WebService,但在某些情况下我们可能需要在程序运行期间动态调用一个未知的服务.在.NETFramework的System.Web.Services.Description命名空间中有我们需要的东西.具体步骤:1.从目标URL下载WSDL数据.2.使用ServiceDescription创建和格式化WSDL文档文件.3.使用

ASP.NET运用动态构建语句实现高效批量删除

网站中的批量删除很常见,特别是对在gridview中做批量删除.我们一般的做法是循环到勾选的就调用过程直接删除.这样的话个人觉得效率不是很高,如果是上百上千的数据要删除,那就得调用试行上百次.其实我们可以运用动态构建删除语句进行高效批量删除,无论你选多少要删除的数据,只需调用试行一次. 底下写的存储过程删除语句与上图无关,上图是常见的在gridview中做批量删除.使用存储过程: ----------------------------------------------------------