我想试试把图片文件保存到服务器上,所以使用了如下的代码:
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盘下了,
提示中的文件名好象多了几个空格引起了此问题,
我错在那里了?
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盘下了,
提示中的文件名好象多了几个空格引起了此问题,
我错在那里了?
解决方案 »
- Tabcontrol控件如何通过标签文本来激活?
- xsl + xml 生成html的问题
- 多线程+datagridview的问题
- 应用程序window2003下可以运行,xp下不行(xp安装了.netframework2.0的)
- API参数值
- 谁有华为公司C#的面试题
- C# 如何通过一个窗体上控件控制另一个窗体上的控件的属性
- 急急急,谁有工行B2C在线支付接口的源代码(C#)
- 在JavaScript中如何将字符串转换为数字型(double)?
- 用Visual C#.net进行wince开发,发觉combox和button没有keydown和keyup事件,怎么办?
- 老是提示说没有任何列,请帮帮忙。
- 請幫忙解答面試題目...
用相對路徑試試!
其他信息: 远程处理无法在类型 System.Drawing.Image 上找到字段 nativeImage。是不是
Image不支持远程处理