Внутри .NET Remoting
От: Игорь Ткачев Россия blogs.rsdn.ru
Дата: 15.07.03 03:08
Оценка: 1318 (33)
Статья:
Внутри .NET Remoting
Автор(ы): Игорь Ткачев
Дата: 11.07.2003
Первая часть статьи, рассказывающая о новой технологии межпроцессной коммуникации — Remoting. Это "родная" для .NET Framework технология, использующая все преимущества платформы. В статье разбираются такие тонкие моменты, как работа с контекстом и перехват создания объектов и вызова методов.


Авторы:
Игорь Ткачев

Аннотация:
Первая часть статьи, рассказывающая о новой технологии межпроцессной коммуникации — Remoting. Это "родная" для .NET Framework технология, использующая все преимущества платформы. В статье разбираются такие тонкие моменты, как работа с контекстом и перехват создания объектов и вызова методов.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re: Внутри .NET Remoting
От: EqWu Россия  
Дата: 15.07.03 04:49
Оценка:
Здравствуйте, Игорь Ткачев, Вы писали:

Что-то я не понял...
В Client.exe.config строка TestObject.Test1 означает: класс Test1 в пространстве имен TestObject.
Но где объявление этого класса? Или оно просто опущено?
Re[2]: Внутри .NET Remoting
От: IT Россия blogs.rsdn.ru
Дата: 15.07.03 12:49
Оценка:
Здравствуйте, EqWu, Вы писали:

EW>В Client.exe.config строка TestObject.Test1 означает: класс Test1 в пространстве имен TestObject.

EW>Но где объявление этого класса? Или оно просто опущено?

Такого класса нет. Изменение имени таким образом приводит к тому, что Remoting больше не видит класс TestObject.Test как удалённый. Вместо этого можно было бы просто удалить эту строчку из конфига, но так просто быстрее да и потом оно нам всё равно понадобится.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Внутри .NET Remoting
От: Аноним  
Дата: 07.10.03 13:03
Оценка:
Народ , подскажите следующую вещь :
У меня при сборке происходит ругань на строку :
RemotingConfiguration.Configure("Server.exe.config");

Config file Server.config can not be read successfully due to exception System.IO.FileNotFoundException: The system cannot find the file specified.
Файл Server.exe.config лежит в одном каталоге с server.exe .
Может . я прав каких не даю ?
Re[4]: Внутри .NET Remoting
От: Lloyd Россия  
Дата: 07.10.03 14:02
Оценка:
Здравствуйте, Аноним, Вы писали:



А>Народ , подскажите следующую вещь :

А>У меня при сборке происходит ругань на строку :
А>RemotingConfiguration.Configure("Server.exe.config");

А>Config file Server.config can not be read successfully due to exception System.IO.FileNotFoundException: The system cannot find the file specified.

А>Файл Server.exe.config лежит в одном каталоге с server.exe .
А>Может . я прав каких не даю ?

А ты перед
RemotingConfiguration.Configure("Server.exe.config");

напиши
string fileName = Directory.GetCurrentDirectory() + "/Server.exe.config";
MessageBox.Show(string.Format("{0} {1}существеует", fileName , File.Exists(fileName)?"":"не " ));


Re: Внутри .NET Remoting
От: Аноним  
Дата: 28.07.05 11:29
Оценка:
> ...
> Наш объект является dll-модулем и будет возвращать название той программы, в которой он загружен. Это позволит легко определять, где в данный момент работает объект – на клиенте или на сервере.
> ...

Т.е. объект должен быть скомпилирован отдельным проектом?
Re[2]: Внутри .NET Remoting
От: IT Россия blogs.rsdn.ru
Дата: 28.07.05 14:23
Оценка:
Здравствуйте, <Аноним>, Вы писали:

>> ...

>> Наш объект является dll-модулем и будет возвращать название той программы, в которой он загружен. Это позволит легко определять, где в данный момент работает объект – на клиенте или на сервере.
>> ...

А>Т.е. объект должен быть скомпилирован отдельным проектом?


В примере, да.
... << RSDN@Home 1.2.0 alpha rev. 0>>
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Внутри .NET Remoting
От: Аноним  
Дата: 29.07.05 05:58
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, <Аноним>, Вы писали:


>>> ...

>>> Наш объект является dll-модулем и будет возвращать название той программы, в которой он загружен. Это позволит легко определять, где в данный момент работает объект – на клиенте или на сервере.
>>> ...

А>>Т.е. объект должен быть скомпилирован отдельным проектом?


IT>В примере, да.


Спасибо.
Кхм, а каким образом? Если можно, поподробнее: какой проект создать и т.п. Я только что перешёл на .NET c Builder'a и мне не всё пока очевидно. Сначала я решил, что этот класс цепляется в проект клиента. Фраза
> Наш объект является dll-модулем...
сбивает меня полностью с толку. Или в исходнике TestObject.cs просто опущен класс с точкой входа?
И где вообще в New Project для Visual C# DLL?
Re[4]: Внутри .NET Remoting
От: IT Россия blogs.rsdn.ru
Дата: 29.07.05 14:59
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>И где вообще в New Project для Visual C# DLL?


Menu -> File -> New -> Project -> Visual C# Project -> Class Library
... << RSDN@Home 1.2.0 alpha rev. 0>>
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Внутри .NET Remoting
От: Аноним  
Дата: 01.08.05 05:23
Оценка:
Здравствуйте, IT, Вы писали:

IT>Menu -> File -> New -> Project -> Visual C# Project -> Class Library


Спасибо.
Re: Внутри .NET Remoting
От: bibarius  
Дата: 27.02.06 11:43
Оценка:
Здравствуйте, Игорь Ткачев, Вы писали:

Первый этап полностью контролируется JIT. При обработке команды "newobj" в недрах JIT-компилятора вызывается следующий метод (взято из исходных текстов CLI 1.0 Release):

// fjit.cpp

FJitResult FJit::compileCEE_NEWOBJ();

...


Скажите, пожалуйста, где можно ознакомиться с исходниками CLI ?
Re[2]: Внутри .NET Remoting
От: TK Лес кывт.рф
Дата: 27.02.06 12:04
Оценка:
Hello, "bibarius"
>
> Скажите, пожалуйста, где можно ознакомиться с исходниками CLI ?

http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&amp;displaylang=en
Posted via RSDN NNTP Server 2.0
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Внутри .NET Remoting
От: Аноним  
Дата: 18.08.06 15:30
Оценка:
Здравствуйте, Игорь Ткачев, Вы писали:

ИТ>Аннотация:

ИТ>Первая часть статьи, рассказывающая о новой технологии межпроцессной коммуникации — Remoting. Это "родная" для .NET Framework технология, использующая все преимущества платформы. В статье разбираются такие тонкие моменты, как работа с контекстом и перехват создания объектов и вызова методов.

А что планировалось во второй части статьи?
На какие другие интересные моменты стоит обратить внимание в .NET Remoting?
Re: Внутри .NET Remoting
От: tlalok  
Дата: 24.08.06 12:23
Оценка:
Здравствуйте, Игорь Ткачев, Вы писали:

ИТ>Статья:

ИТ>Внутри .NET Remoting
Автор(ы): Игорь Ткачев
Дата: 11.07.2003
Первая часть статьи, рассказывающая о новой технологии межпроцессной коммуникации — Remoting. Это "родная" для .NET Framework технология, использующая все преимущества платформы. В статье разбираются такие тонкие моменты, как работа с контекстом и перехват создания объектов и вызова методов.


ИТ>После сборки всех модулей запустите сервер, а затем клиента. Если вы всё сделали правильно, клиент должен вывести на экран следующую строчку:


ИТ>Server.exe


Я сделал, как все было написано, но при запуске клиента получил:

An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
Additional information: File or assembly name TestObject, or one of its dependencies, was not found.

Если поменять в конфигурационном файле Test, на Test1 — чтобы такой объект не был найден на сервере, объект создается на клиенте и все работает нормально. Сборка TestObject.dll присутствует в каталоге ..\Client\bin\debug. В чем может быть причина? Нужно ли этой сборке присваивать String name?

Спасибо
Re[2]: Внутри .NET Remoting
От: Zhenek  
Дата: 10.02.09 08:03
Оценка:
Здравствуйте, tlalok, Вы писали:

T>Я сделал, как все было написано, но при запуске клиента получил:


T>An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll

T>Additional information: File or assembly name TestObject, or one of its dependencies, was not found.

T>Если поменять в конфигурационном файле Test, на Test1 — чтобы такой объект не был найден на сервере, объект создается на клиенте и все работает нормально. Сборка TestObject.dll присутствует в каталоге ..\Client\bin\debug. В чем может быть причина? Нужно ли этой сборке присваивать String name?


T>Спасибо



Сборка TestObject.dll должна присутствовать также и в Server\bin\debug.

См. "Когда на сервер приходит запрос от клиента, то сервер ищет сборку с именем TestObject (часть параметра после запятой), и в ней – класс TestObject.Test "
Re: Внутри .NET Remoting
От: Аноним  
Дата: 14.05.09 16:21
Оценка:
Здравствуйте, Игорь Ткачев, Вы писали:

ИТ>Статья:

ИТ>Внутри .NET Remoting
Автор(ы): Игорь Ткачев
Дата: 11.07.2003
Первая часть статьи, рассказывающая о новой технологии межпроцессной коммуникации — Remoting. Это "родная" для .NET Framework технология, использующая все преимущества платформы. В статье разбираются такие тонкие моменты, как работа с контекстом и перехват создания объектов и вызова методов.


ИТ>Авторы:

ИТ> Игорь Ткачев

ИТ>Аннотация:

ИТ>Первая часть статьи, рассказывающая о новой технологии межпроцессной коммуникации — Remoting. Это "родная" для .NET Framework технология, использующая все преимущества платформы. В статье разбираются такие тонкие моменты, как работа с контекстом и перехват создания объектов и вызова методов.


напиши те пожалуйста перед каждым куском кода где он создается, в ddl'e, отдельно или раздельно, файлы конфигурации где должны находится? и как их создавать? где создавать?
Re: Внутри .NET Remoting
От: Аноним  
Дата: 26.06.09 00:54
Оценка:
Доброго времени суток уважаемые авторы статьи. Когда попытался запустить серверную часть, то вывалилось следующее:
Сбой с исключением "System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Configuration.ConfigurationErrorsException: Система конфигурации не прошла инициализацию ---> System.Configuration.ConfigurationErrorsException: Неизвестный раздел конфигурации system.serviceModel. (c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 135)
в System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
в System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
в System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
в System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
--- Конец трассировки внутреннего стека исключений ---
в System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
в System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName)
в System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
в System.Configuration.ConfigurationManager.GetSection(String sectionName)
в System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
в System.Net.Configuration.SettingsSectionInternal.get_Section()
в System.Net.Sockets.Socket.InitializeSockets()
в System.Net.Sockets.Socket.get_SupportsIPv4()
в System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback)
в System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider)
в System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)
--- Конец трассировки внутреннего стека исключений ---
в System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType)
в System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaringType)
в System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
в System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
в System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
в System.Runtime.Remoting.RemotingConfigHandler.CreateChannelFromConfigEntry(ChannelEntry entry)
в System.Runtime.Remoting.RemotingConfigHandler.ConfigureChannels(RemotingXmlConfigFileData configData, Boolean ensureSecurity)
в System.Runtime.Remoting.RemotingConfigHandler.ConfigureRemoting(RemotingXmlConfigFileData configData, Boolean ensureSecurity)" при настройке службы удаленного взаимодействия.


Что можете посоветовать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.