我想试试把图片文件保存到服务器上,所以使用了如下的代码:
Class Library:
using System;
using System.Drawing;namespace PoImage
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
[SerializableAttribute]
public class PI:MarshalByRefObject
{
public PI()
{
}
public Image GetImage()
{
String s;
s=@"D:\abc.jpg";
Image temp= Image.FromFile ( s);
return temp;
}
}
}
server端:
private void Form1_Load(object sender, System.EventArgs e)
{
ChannelServices.RegisterChannel ( new TcpServerChannel(8022) );
RemotingConfiguration.RegisterWellKnownServiceType ( typeof(PI),"PI",WellKnownObjectMode.SingleCall );
}
客户端:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;using System.Runtime.Remoting ;
using System.Runtime.Remoting.Channels ;
using System.Runtime.Remoting.Channels.Tcp ;
using PoImage;namespace Client
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
                   ......
[STAThread]
static void Main() 
{
Application.Run(new Form1());
}
                  //获取服务端对象,并从服务器硬盘上得到一个图片文件,并显示出来
private void GetImage_Click(object sender, System.EventArgs e)
{
ChannelServices.RegisterChannel ( new TcpClientChannel () );
PI a  = ( PI) Activator.GetObject ( typeof(PI),"tcp://localhost:8022/PI");
Image im = a.GetImage ();
Graphics gr = Graphics.FromHwnd ( this.Handle );
gr.DrawImage ( im ,0,0);
}
}
}
我运行后出现如下提示:
有关调用实时(JIT)调试而不是此对话框的详细信息,
请参阅此消息的结尾。************** 异常文本 **************
System.IO.FileNotFoundException: D:\abc.jpgServer stack trace: 
   at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
   at System.Drawing.Image.FromFile(String filename)
   at PoImage.PI.GetImage() in d:\乔昌华\poimage\class1.cs:line 23
   at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(MethodBase mb, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at PoImage.PI.GetImage() in d:\乔昌华\poimage\class1.cs:line 22
   at Client.Form1.GetImage_Click(Object sender, EventArgs e) in d:\乔昌华\client\client.cs:line 98
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
说是文件不存在,可我确实将abc.jpg放在了d盘下了,
提示中的文件名好象多了几个空格引起了此问题,
我错在那里了?