ENVIRONMENT:
Windows Server 2003 Enterprise Edition SP1
Microsoft Visual Studio 2005 Beta 2
ШАГИ ПО ВОСПРОИЗВЕДЕНИЮ:
1) Открываем MSDN Library for Visual Studio 2005 Beta
2) Открываем раздел Building a Basic .NET Remoting Application (
ms-help://MS.VSCC.v80/MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxremoting/html/c5d4a442-1957-43d4-b011-342ffc77ea20.htm)
3) Реализуем этот пример с помощью кнопок [Копировать]/[Вставить].
4) Запускаем Listener.exe
5) Запускаем Client.exe
6) В консоли видим строку This is the RemotableType.
7) ВСЁ ПРЕКРАСНО !!! ПОКА ...
8) Жмём [ENTER] и наслаждаемся диалоговым окном с заголовком "Listener.exe — Ошибка приложения" и содержанием
"Инструкция по адресу '0x20b0cd29' обратилась к памяти по адресу '0x00000000'. Память не может быть 'written'"
"OK" -- завершение приложения
"Отмена" -- отладка приложения
Кнопки [ОК] и [Отмена] прилагаются.
9) Жмём [OK] — клиент закрывается. И СЕРВЕР УБИТ !!!
~~~~~~~~~~
ВАЖНОЕ ПРИМЕЧАНИЕ:
Этот же пример прекрасно работает в .NET Framework v1.1
P.S. Вот мои несколько более упрощённые файлы.
<code>
//
// RemotableType.cs
//
using System;
public class RemotableType : MarshalByRefObject
{
private const string _internalString = "This is the RemotableType.";
public string StringMethod()
{
return _internalString;
}
}
</code>
<code>
//
// Listener.cs
//
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels;
public class Listener
{
public static void Main()
{
ChannelServices.RegisterChannel( new TcpChannel( 8989 ) );
RemotingConfiguration.RegisterWellKnownServiceType(
typeof( RemotableType ),
"RemotableType.rem",
WellKnownObjectMode.Singleton );
Console.WriteLine( "Listening for requests. Press Enter to exit..." );
Console.ReadLine();
}
}
</code>
<code>
//
// Client.cs
//
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels.Tcp;
using System.Runtime.Remoting.Channels;
public class Client
{
public static void Main()
{
ChannelServices.RegisterChannel( new TcpChannel() );
RemotableType remoteObject = (RemotableType) Activator.GetObject(
typeof( RemotableType ),
"
tcp://localhost:8989/RemotableType.rem" );
Console.WriteLine( remoteObject.StringMethod() );
Console.ReadLine();
}
}
</code>
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Полчаса прошло, а мой топик уже уехал с первой страницы
Сорри, вынужден поддерживать его актуальным, ибо проблема очень печёт
[
Добавлено модератором:
Не факт, что поднимая таким способом сообщение вверх Вы выигрываете, т. к. Вы формально "отвечаете" на свой вопрос, а значит он уходит из виртуального форума "Вопросы без ответов", а значит шансов что на него кто-то ответит — меньше.
]
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Сам открыл тему — сам и закрою на оптимистической ноте
Отправил проблему в Microsoft и вот что примерно они мне сказали:
— Посмотрите, а не установлен ли у Вас случаем антивирус ESET NOD32?
Глянул я — таки да.
Далее, отключив его, убедился что проблема пропала. Эксперименты с несколькими компами показали, что если на сервере NOD32, то проявляется эта проблема. На клиенте NOD32 не мешает.
Порылся ещё маленько в настройках NOD32 — там можно задать исключения для данного приложения (т.е. моего АппСервера, например). Таким образом, в эксплуатационной версии можно не менять на серверной машине антивирус. Но на своей рабочей я пререшёл на другой антивирус, чтоб не мучиться или не забыть каждый раз для разных тестов задавать исключения в NOD32.
Дааааа, не первый раз на эти грабли наступаю
В смысле Firewall и/или Antivirus
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение