Solved

Remoting "Requested Service not found"

Posted on 2010-08-26
6
1,135 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
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 

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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
In an interesting question (https://www.experts-exchange.com/questions/29008360/) here at Experts Exchange, a member asked how to split a single image into multiple images. The primary usage for this is to place many photographs on a flatbed scanner…

828 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