【发布时间】:2013-04-02 14:55:12
【问题描述】:
我正在开发的应用程序是一个简单的远程聊天应用程序。
当我尝试运行我的应用程序时遇到此异常。当它谈到加载文件或程序集时,我真的不明白。
“System.Reflection.TargetInvocationException: 调用目标抛出异常。---> System.IO.FileNotFoundException: 无法加载文件或程序集'Client, Version=1.0.0.0”
try
{
gt = (Greeting)Activator.GetObject(typeof(Greeting), "tcp://Localhost:7189/Greeting");
handler = new MessageHandler(OnReceive);
gt.Sender += handler;
}
catch(Exception ex)
{
textBox2.Text = ex.ToString();
}
在这一行抛出这个异常
gt.Sender += handler;
下面是我的问候课。
[Serializable]
public delegate void MessageHandler(string mymsg);
public class Greeting:MarshalByRefObject
{
public event MessageHandler Sender;
public override object InitializeLifetimeService()
{
return null;
}
public Greeting()
{
}
public void postGreeting(string msg)
{
if (Sender != null)
{
Sender(msg);
}
}
}
【问题讨论】:
-
MessageHandler在客户端程序集中吗?该程序集是否已加载到 BIN/GAC 中? .NET 在首次调用引用的程序集之前不会加载它们,因此这可能是您的问题的根源。 -
Greeting 类内部发生异常。您将不得不调试/探索该对象。似乎其中的一个方法可能需要一个日志文件或位于您机器上不可用的路径的东西。
-
@FrazellThomas 我是 Remoting 的新手,我不知道如何检查程序集是否已加载到 BIN/GAC 中。也许您可以建议将这个程序集加载到 BIN/GAC 中的方法。
-
@PrahladYeri 我有点明白你在说什么,但不清楚。我可以发布我的 Greetings 课程,所以请看一下。
-
我肯定会看一下 Greetings 类,但最好的方法是调试它。你不能将包含 Greetings 类的解决方案添加到你的解决方案中,并在 Visual Studio 中调试它吗?