类
public class wr:MarshalByRefObject
{
public ftpname;public wr()
{
ftpname="aaa";}
public string addnew()
{
return ftpname;
}
}
服务端: TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Hosts), "hi", WellKnownObjectMode.SingleCall);
客户端:
wrwr= (Hosts)Activator.GetObject(typeof(wr), "tcp://127.0.0.1:8046/hi");
wr.ftpname = "22222";
Response.Write(wr.addnew());使用这种方法却实可以调用远程对象,但是这种方法调用远程对象的时候就实例化构造函数.所以ftpname的值永远都是默认构造函数的aaa,没有办法在客户端给值.在网上找了很久发现可以用客户端激活方式,但是总是出错不知道为什么服务端:
TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,false);
//客户激活模式
RemotingConfiguration.ApplicationName = "hi";
RemotingConfiguration.RegisterActivatedServiceType(typeof(wr));
客户端:
RemotingConfiguration.RegisterActivatedClientType(typeof(wr), "tcp://127.0.0.1:8086/hi");
wr obj = new wr();
wr.ftpname="2222";
Response.Write(wr.addnew());
public class wr:MarshalByRefObject
{
public ftpname;public wr()
{
ftpname="aaa";}
public string addnew()
{
return ftpname;
}
}
服务端: TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Hosts), "hi", WellKnownObjectMode.SingleCall);
客户端:
wrwr= (Hosts)Activator.GetObject(typeof(wr), "tcp://127.0.0.1:8046/hi");
wr.ftpname = "22222";
Response.Write(wr.addnew());使用这种方法却实可以调用远程对象,但是这种方法调用远程对象的时候就实例化构造函数.所以ftpname的值永远都是默认构造函数的aaa,没有办法在客户端给值.在网上找了很久发现可以用客户端激活方式,但是总是出错不知道为什么服务端:
TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,false);
//客户激活模式
RemotingConfiguration.ApplicationName = "hi";
RemotingConfiguration.RegisterActivatedServiceType(typeof(wr));
客户端:
RemotingConfiguration.RegisterActivatedClientType(typeof(wr), "tcp://127.0.0.1:8086/hi");
wr obj = new wr();
wr.ftpname="2222";
Response.Write(wr.addnew());
解决方案 »
- Emit反射获取方法名称等????
- 如何用C#语言,去读一个EXCEL,判断出合并单元格
- 有趣的问题,关于定制打印和御览的问题
- [讨论]用C#自己写了一个连接池但是发现有错误
- C#如何引用Excel 2003 COM组件?
- 一个连数据库的问题
- 如何建立一个带密码的access数据库连接呀
- 求助,关于excel数据读取的问题
- 怎么把一个buffer考到结构体里面发出去啊
- 微软工程师请进: IE11下ie内核浏览器用十分钟就频繁卡死
- 请问在2005打包Winform自定义数据库的时候,继承了一个Insaller类,但是没有任何作用,是怎么回事啊?
- 高分求一个重写DataList基类的问题,谢谢大家关注
public class wr:MarshalByRefObject
{
public ftpname;public wr()
{
ftpname="aaa";}
public string addnew()
{
return ftpname;
}
}
服务端: TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(wr), "hi", WellKnownObjectMode.SingleCall);
客户端:
wr obj= (wr)Activator.GetObject(typeof(wr), "tcp://127.0.0.1:8046/hi");
obj.ftpname = "22222";
Response.Write(obj.addnew());使用这种方法却实可以调用远程对象,但是这种方法调用远程对象的时候就实例化构造函数.所以ftpname的值永远都是默认构造函数的aaa,没有办法在客户端给值.在网上找了很久发现可以用客户端激活方式,但是总是出错不知道为什么服务端:
TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,false);
//客户激活模式
RemotingConfiguration.ApplicationName = "hi";
RemotingConfiguration.RegisterActivatedServiceType(typeof(wr));
客户端:
RemotingConfiguration.RegisterActivatedClientType(typeof(wr), "tcp://127.0.0.1:8086/hi");
wr obj = new wr();
obj .ftpname="2222";
Response.Write(obj .addnew());
{}仍然出现同样的错误..
有人熟悉Remoting吗?
wzd24(牧野)(衣带渐宽终不悔,为伊消得人憔悴)还在????
...................................................
里面就有Application_Start()。
又无法加添加命名空间我感觉不是重复执行那个语句的事,因为第一次调用那个语句就出错了你能否加下我的Q:410125
下面是我写的一个简单例子:
类:
[Serializable]
public class Calculator : MarshalByRefObject
{
public Calculator()
{
} public int Sum(int x, int y)
{
return x + y;
}
}
服务器端:
class Server
{
static void Main(string[] args)
{
ChannelServices.RegisterChannel(new TcpChannel(4006), false); RemotingConfiguration.RegisterWellKnownServiceType(typeof(Calculator)
, "Calculator.rem", WellKnownObjectMode.Singleton); // 重点地方 Console.WriteLine("运行中...");
Console.ReadLine();
}
}
客户端:
class Client
{
static void Main(string[] args)
{
Calculator calcu = (Calculator)Activator.GetObject(typeof(Calculator), "tcp://localhost:2560/Calculator.rem");
int sum = calcu.Sum(5, 6);
Console.WriteLine(sum);
}
}