我用下面语句来创建类型的一个实例:
ClassA Obj = (ClassA)Activator.CreateInstance(tasktype);
其中tasktype是Type类型在执行上述语句时抛出异常:
Exception has been thrown by the target of an invocation..我在本地是好的,但在服务器上却抛出该异常。
本人在网上搜索了一下,说可能是.net FrameWork版本问题,但是编译时都是.net FrameWork 2.0编译,请问有没有知道原因的,很紧急。非常感谢!
提供方法都可以得分。

解决方案 »

  1.   

    在 .NET Framework 应用程序的 DataSet 集合中反序列化空 TimeSpan 类时出现“Exception has been thrown by the target of an invocation”(调用的目标发生了异常)错误消息 应该是  Service Pack 版本没有安装正确吧?
      

  2.   

    不好意思写错误了,是framework 没有安装正确,
    建议删除当前的 framework 和打上最新的 Service Pack 
      

  3.   

    重新安装framework ,你的安装似乎没成功。
      

  4.   

    没碰到过object objType;
    objType = Assembly.Load(path).CreateInstance("类名");
      

  5.   

    应该就是.net FrameWork 2.0没装好的问题\
    真的不行了问问你的服务器提供商
      

  6.   

    和SP3有什么关系吗?9楼,我安的也是SP3啊!
      

  7.   

    打开命令输入:aspnet_regiis.exe -i
      

  8.   


    object objType; 
    objType = Assembly.Load(path).CreateInstance("类名");
      

  9.   

    有可能是服务器的问题328560 (http://support.microsoft.com/kb/328560/) FIX:在基于 .NET Framework 1.0 创建的应用程序中试图反序列化值为 Byte[0] 的数据时出现“Exception has been thrown by the target of an invocation”(调用的目标引发了异常)错误消息
      

  10.   

    1、确保两个类型的基类、接口相同
    2、确保 服务器上的 iis 网站的 .net 版本为 2.0
      

  11.   

    objType = Assembly.Load(path).CreateInstance("类名");
      

  12.   


    1、你所指的“两个类型”是“要实例化对象的类”和“转化的类”吗?即“ClassA”和tasktype吗?
    我这两个类的关系其实是继承关系,tasktype的类是继承ClassA的。这样会不会有问题,都没用到接口。
    2、服务器的版本是.Net FrameWork 2.0
      

  13.   

    Mark,放到服务器出问题,问题肯定是服务器的了,具体帮不上了
      

  14.   

    wish it helps----->  http://geekswithblogs.net/glozano/archive/2006/11/14/97066.aspx
      

  15.   

    2、服务器的版本是.Net FrameWork 2.0说的是部署时IIS中 ASP.NET 选择2.0框架,不是1.1。
      

  16.   

    服务器环境:
    windows 2003 操作系统
    .net FrameWork 2.0 +  sp1补丁我后来在本机也装了sp1补丁,还是没报错。真的要崩溃了
      

  17.   

    以下是服务器“事件查看器”中日志信息:异常的Source、Message、StackTrace: 
    Source:mscorlib, 
    Message:Exception has been thrown by the target of an invocation., 
    StackTrace: at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) 
    at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) 
    at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) 
    at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Reflection.Assembly.CreateInstance(String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at TaskScheduler.TTaskManager.PrepareTaskQueue() in c:\TaskScheduler\TaskManager.cs:line 94 
    at TaskScheduler.TTaskManager..ctor() in c:TaskScheduler\TaskManager.cs:line 64 
    at TaskScheduler.TTaskScheduler.RunTasks(Object sender) in c:\TaskScheduler\TaskScheduler.cs:line 58. 
      

  18.   

    终于找到错误原因了,找的好辛苦啊。我把错误原因分析一下,以便其他人借鉴。
    原因分析: 
    1、在类的实例化时,调用构造函数时,抛出了异常,而该异常信息并不会抛出到外面来,所以在外面只能看到的是“Exception has been thrown by the target of an invocation..”。 
    try 

    ClassA Obj = (ClassA)Activator.CreateInstance(tasktype);  

    catch(Exception ex) 

      //此处的异常只会报Exception has been thrown by the target of an invocation 并不会报构造函数的异常
    } 2、为什么在本地是好的,而在服务器上就不行了呢。这个问题我本应该早就要考虑到的,但是实在有点隐蔽,导致一开始没有想到。 
    原因是构造函数里的一个方法中与数据库的数据有关系,然而服务器上的数据不正常(很诡异的),导致某一个地方发生了错误。所以我在N多的机器上测试都是正常的,唯独就在服务器上不行。 
    不过想想,这也说明我的程序考虑的不到位,今后一定要注意了。 
    另外,通过这个问题给我一个启发,在查问题时,不要总抠着那个错误去想,应该从多方面想想。我当初看这个错误是那个实例化过程抛出的,我就认为肯定是这个实例化的方法有问题,我就一直查这个方法的用法,并且我还找了其他的实例化的方法,结果都以失败告终。所以要多想想其他可能会出现错误的地方并且要深入一点看问题。
    总之,查出了问题很高兴,总算松了一口气。感谢大家对我的帮助!不甚感激! 终于可以结贴了,人太多,分不是很多,勿怪。