Hi Leute,
ich will ein kleines Client-Server Tool schreiben, mit welchem ich mir Screenshots von den Clients an den Server senden lassen kann. Leider tritt immer folgender Fehler auf:
Eine nicht behandelte Ausnahme des Typs 'System.Runtime.Serialization.SerializationException' ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Auf den Typ 'System.Runtime.Remoting.ObjRef' kann aufgrund von Sicherheitseinschränkungen nicht zugegriffen werden.
Hier erstmal die Sourcen:
Server
Client
Die Schnittstelle
Im Serverprojekt gibt es zwar noch eine Klasse mit der Programmlogik, jedoch steht in dieser zur Zeit nichts drin.
Der Fehler tritt immer beim Aufruf der Methode 'test.send_screenshot' im Client auf.
Mir ist aufgefallen, dass wenn ich als Parameter eine Variable vom Typ String übergebe, dass dieser Fehler nicht auftritt(Aktueller Typ: System.Drawing.Bitmap). Im MSDN steht jedoch, dass die Klasse Bitmap <Serializable()> ist.
Kann mir jemand sagen woran das liegt oder hab ich das mit dem Remoting noch nicht ganz verstanden.
ich will ein kleines Client-Server Tool schreiben, mit welchem ich mir Screenshots von den Clients an den Server senden lassen kann. Leider tritt immer folgender Fehler auf:
Eine nicht behandelte Ausnahme des Typs 'System.Runtime.Serialization.SerializationException' ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Auf den Typ 'System.Runtime.Remoting.ObjRef' kann aufgrund von Sicherheitseinschränkungen nicht zugegriffen werden.
Hier erstmal die Sourcen:
Server
Code:
Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
Dim _channel As New TcpChannel(Int32.Parse(txtPort.Text)) 'channel instanzieren
ChannelServices.RegisterChannel(_channel) 'channel registrieren
RemotingConfiguration.RegisterWellKnownServiceType(GetType(ServerFunctions), _
"test.rem", _
WellKnownObjectMode.SingleCall)
End Sub
Client
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim _channel As New TcpChannel(0)
ChannelServices.RegisterChannel(_channel)
RemotingConfiguration.RegisterWellKnownClientType(GetType(MainFunctions.ITest), _
"tcp://" & txtServer.Text & ":" & txtPort.Text & "/test.rem")
Dim test As MainFunctions.ITest
test = Activator.GetObject(GetType(MainFunctions.ITest), _
"tcp://" & txtServer.Text & ":" & txtPort.Text & "/test.rem")
Dim get_local_scrn As New ClassScreenshot.CaptureScreen
test.send_screenshot(get_local_scrn.GetDesktopImage)
End Sub
Die Schnittstelle
Code:
Public Interface ITest
Sub send_screenshot(ByVal bm As Drawing.Bitmap)
End Interface
Im Serverprojekt gibt es zwar noch eine Klasse mit der Programmlogik, jedoch steht in dieser zur Zeit nichts drin.
Der Fehler tritt immer beim Aufruf der Methode 'test.send_screenshot' im Client auf.
Mir ist aufgefallen, dass wenn ich als Parameter eine Variable vom Typ String übergebe, dass dieser Fehler nicht auftritt(Aktueller Typ: System.Drawing.Bitmap). Im MSDN steht jedoch, dass die Klasse Bitmap <Serializable()> ist.
Kann mir jemand sagen woran das liegt oder hab ich das mit dem Remoting noch nicht ganz verstanden.