Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Remoting "Requested Service not found"

Posted on 2010-08-26
6
Medium Priority
?
1,214 Views
Last Modified: 2012-05-10
Hi,

I am trying to develope an remoting application but I am having a problem. Everytime I run a function from I got the "Requested Service not found" error. How can I solve it?
'Server side:
 Private Sub InitializeServer()

        Dim tcpPort As Integer = 8090

        Dim serverProv As New BinaryServerFormatterSinkProvider()
        serverProv.TypeFilterLevel = TypeFilterLevel.Full
        RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off

        serverProv.TypeFilterLevel = TypeFilterLevel.Full
        Dim propBag As IDictionary = New Hashtable()

        Dim isSecure As Boolean = False
        propBag("port") = tcpPort
        propBag("typeFilterLevel") = TypeFilterLevel.Full
        propBag("name") = "chn_comm"
        Dim tcpChan As TcpChannel = New TcpChannel(propBag, Nothing, serverProv)
        ChannelServices.RegisterChannel(tcpChan, isSecure)

        Dim uRI As String = "comm"
        ' ---------------------------------------------
        RemotingConfiguration.RegisterWellKnownServiceType(GetType(DataExchange.DataExchange), uRI, WellKnownObjectMode.SingleCall)

    End Sub

'Shared Library
Public Class DataExchange
    Inherits MarshalByRefObject

    Public test As String = "Merhaba Dünya"

    Public Sub SetValue(ByVal val As String)
        test = val
    End Sub

    Public Function GetValue() As String
        Return test
    End Function


End Class

'Client Code
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim de = CType(Activator.GetObject(GetType(DataExchange.DataExchange), "tcp://127.0.01:8090/comm/"), DataExchange.DataExchange)
        de.SetValue("test")
        MsgBox(de.GetValue)
    End Sub

Open in new window

0
Comment
Question by:emresamisuzer
  • 3
  • 3
6 Comments
 
LVL 65

Expert Comment

by:rockiroads
ID: 33538842
dont know if this helps but look at the solution here http://bytes.com/topic/c-sharp/answers/245188-remoting-object-requested-service-not-found

>> I fixed it by overriding the default MarshalByRefObject.InitializeLifetimeService to return null, which tells Remoting that the lease should never expire.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 33538856
Read up more about this and you need to be a little careful as apparently it can give out memory leaks if not cleaned up properly (i.e. proper disconnects etc)

So reading this here is a possible solution regarding using InitialiseLifetimeServer http://www.cookcomputing.com/blog/archives/000258.html

Another thing to check is values you are using eg port number. Are they definitely correct?
0
 

Author Comment

by:emresamisuzer
ID: 33539112
I've already seen the MarshalByRefObject.InitializeLifetimeService solution but I didn't undestand how to do it. Could you please explain?
0
Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

 

Author Comment

by:emresamisuzer
ID: 33539145
I tried with the second example you have sent but the result is same.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 33706610
Hiya, did u get anywhere with this? I couldnt find anything else to try. might be worth clicking on request attention to get a bump.
0
 

Accepted Solution

by:
emresamisuzer earned 0 total points
ID: 33706993
Yes, I found a solution. The problem was not the timeout, I think there was another problem with the code. I found another sample from a web site and it worked.
'Init Server
 	Dim ServiceChannel As IChannel
        Dim serverProv As BinaryServerFormatterSinkProvider = New BinaryServerFormatterSinkProvider
        Dim clientProv As BinaryClientFormatterSinkProvider = New BinaryClientFormatterSinkProvider
        Dim Props As IDictionary = New Hashtable
        Dim IpInjProvider As New IpInjectorSinkProvider

        serverProv.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full
        Props("port") = "8000"
        Props("name") = "MyApplication"
        serverProv.Next = IpInjProvider

        ServiceChannel = New TcpChannel(Props, clientProv, serverProv)
        '---------------------------------------------

        ChannelServices.RegisterChannel(ServiceChannel)

        RemotingConfiguration.RegisterWellKnownServiceType( _
              GetType(ActwinBillingCommunicationDataExchange.Queue), _
              "MyApplication", WellKnownObjectMode.Singleton)


'Connect to server
Private server As IRemoteLib
    Private Channel As System.Runtime.Remoting.Channels.Tcp.TcpChannel 'New System.Runtime.Remoting.Channels.tcp.TcpChannel(0)
    Private serverProv As BinaryServerFormatterSinkProvider
    Private clientProv As BinaryClientFormatterSinkProvider
    Private props As IDictionary = New Hashtable

serverProv = New BinaryServerFormatterSinkProvider
        clientProv = New BinaryClientFormatterSinkProvider
        serverProv.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full
        props("port") = 0
        props("connectiontimeout") = 120000
        'props("name") = privServiceName
        Channel = New TcpChannel(props, clientProv, serverProv)
ChannelServices.RegisterChannel(Channel)

            server = CType(Activator.GetObject(GetType(IRemoteLib), txt_remoting_server.Text.Trim), IRemoteLib)

Open in new window

0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
In real business world data are crucial and sometimes data are shared among different information systems. Hence, an agreeable file transfer protocol need to be established.
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…

886 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question