Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Type 'RemoteType.ClientActivatedType, RemoteType, и т.д. not registerd to activation. 
:(
    Опции темы
Naum
Дата 23.10.2006, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



В свободное время все колупаюсь с этими клиент-серверными приложениями.
Попробовал пример из MSDN. Там, правда, для 1.1 Frameworka, у меня 2.0.

Server
Код

using System;
using System.Runtime.Remoting;
using System.Windows.Forms;

public class Server
{
    public static void Main(string[] args)
    {
        RemotingConfiguration.Configure(Application.StartupPath  + "\\server.exe.config");
        Console.WriteLine("The server is listening. Press Enter to exit....");
        Console.ReadLine();
        Console.WriteLine("Recycling memory...");
        GC.Collect();
        GC.WaitForPendingFinalizers();
    }
}


Client и Sponsor
Код

Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Lifetime
Imports RemoteType
Imports System.Windows.Forms


Public Class Client
    <MTAThread()> _
    Public Shared Sub Main()
        RemotingConfiguration.Configure(Application.StartupPath & "\CAOClient.exe.config")
        Dim CAObject As ClientActivatedType = New ClientActivatedType 'Здесь ошибка "Type 'RemoteType.ClientActivatedType, RemoteType, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not registered for activation."
        Dim serverLease As ILease = CType(RemotingServices.GetLifetimeService(CAObject), ILease)
        Dim sponsor As MyClientSponsor = New MyClientSponsor
        serverLease.Register(sponsor)
        Console.WriteLine("Client activated object: " & CAObject.RemoteMethod)
        Console.WriteLine("Press Enter to end the client application domain.")
        Console.ReadLine()
    End Sub
End Class

Public Class MyClientSponsor
    Inherits MarshalByRefObject
    Implements ISponsor

    Private lastRenewal As DateTime

    Public Sub New()
        lastRenewal = DateTime.Now
    End Sub

    Public Function Renewal(ByVal lease As ILease) As TimeSpan Implements ISponsor.Renewal
        Console.WriteLine("I've been asked to renew the lease.")
        Dim Latest As DateTime = DateTime.Now
        Console.WriteLine("Time since last renewal: " & (Latest.Subtract(lastRenewal)).ToString)
        lastRenewal = Latest
        Return TimeSpan.FromSeconds(20)
    End Function
End Class


RemoteType
Код

Imports System
Imports System.Runtime.Remoting.Lifetime
Imports System.Security.Principal

Public Class ClientActivatedType
    Inherits MarshalByRefObject

    Public Function RemoteMethod() As String
        Console.WriteLine("ClientActivatedType.RemoteMethod called.")
        Return "RemoteMethod called. " & WindowsIdentity.GetCurrent.Name
    End Function

    Public Overrides Function InitializeLifetimeService() As Object
        Dim lease As ILease = CType(MyBase.InitializeLifetimeService, ILease)
        If lease.CurrentState = LeaseState.Initial Then
            lease.InitialLeaseTime = TimeSpan.FromSeconds(3)
            lease.SponsorshipTimeout = TimeSpan.FromSeconds(10)
            lease.RenewOnCallTime = TimeSpan.FromSeconds(2)
        End If
        Return lease
    End Function
End Class


Что не так?

З.Ы.
 Спасибо, за то, что хотя бы до конца дочитали.  smile 


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 23.10.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Register etc. нужно вызывать не на клиенте, а на сервере. Этот код нужно вынести в отдельный метод удалённого объекта и дёргать его с клиента.


--------------------
user posted image
PM MAIL WWW   Вверх
Naum
Дата 23.10.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



Так он же ругается уже на 
Код

Dim CAObject As ClientActivatedType = New ClientActivatedType



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.