2013-08-06 30 views
1

我已经创建了一个Remoting应用程序。在课堂上Librery的代码是如何在Remoting中使用singleton和singleCall

public class InitialClass1:MarshalByRefObject 
{ 
    int i=0; 
    public InitialClass1() 
    { 

    } 
    public string getInitial(string nam) 
    {     
     i++; 
     if (nam.ToLower() == "naresh") return i.ToString()+").Jadapalli"; 
     else if (nam.ToLower() == "balu") return i.ToString() + "Gonugunta"; 
     else if (nam.ToLower() == "murali") return i.ToString() + "Vempuluri"; 
     else if (nam.ToLower() == "chandra sekhar") return i.ToString() + "Ponnam"; 
     else if (nam.ToLower() == "aneev") return i.ToString() + "Katti"; 
     else if (nam.ToLower() == "rajini") return i.ToString() + "Karlapudi"; 
     else 
      return i.ToString() + "No results"; 

    } 
} 

在控制台应用程序的代码是

class Program 
{ 
    [STAThread] 
    static void Main(string[] args) 
    { 
     TcpChannel tcp = new TcpChannel(1234); 
     ChannelServices.RegisterChannel(tcp,false); 
     string s = ConfigurationManager.AppSettings["remote"]; 
     RemotingConfiguration.RegisterWellKnownServiceType(typeof(InitialClass1),s,WellKnownObjectMode.SingleCall); 
     Console.WriteLine("Remoting starting..."); 
     Console.ReadLine();    
    } 
} 

代码在Windows应用程序是

private void button1_Click(object sender, EventArgs e) 
    { 
     label3.Text = Icls.getInitial(textBox1.Text); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

     string url = ConfigurationManager.AppSettings["remote"]; 
     TcpChannel chan = new TcpChannel(); 
     ChannelServices.RegisterChannel(chan, false); 

     RemotingConfiguration.ApplicationName = "TestRemoting"; 
     RemotingConfiguration.RegisterActivatedClientType(typeof(InitialClass1), url); 

     Icls = new InitialClass1(); 

    } 

这正显示出了异常的Requested Service not found

代码在App.Config文件中是

<configuration> 
    <appSettings> 
    <add key="remote" value="tcp://localhost:1234/TestRemoting"/> 
    </appSettings> 
</configuration> 

回答

0

我的错误是在服务器对象是控制台应用程序

TcpChannel tcp = new TcpChannel(1234); 
    ChannelServices.RegisterChannel(tcp,false); 
    string s = ConfigurationManager.AppSettings["remote"]; 
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(InitialClass1),s,WellKnownObjectMode.SingleCall); 
    Console.WriteLine("Remoting starting..."); 
    Console.ReadLine(); 

见注册我传递的价值(从app.config文件TCP即整个URL://本地主机:1234/TestRemoting)。那就是问题所在。实际上,我们必须根据需要在服务器对象中给出所需的名称,但同名只能在app.config文件中。

这里我的网址是tcp://localhost:1234/TestRemoting。在这种情况下,我们需要给TestRemoting服务器对象

RemotingConfiguration.RegisterWellKnownServiceType(typeof(InitialClass1),"TestRemoting",WellKnownObjectMode.SingleCall); 

这只是我的问题。现在我的应用程序运行良好..

0

你应该尝试button1_click方法的初始化我认为。因为只要按钮被点击就希望它初始化。

+0

感谢您的回答。如果我做soo ..我的价值将初始化事件它是Singletone :) –

+0

@NareshJadapalli所以它的工作? – ferit

+0

NO ..我在客户端更改了我的代码。现在它是showng请求服务未找到错误.. –

相关问题