Здравствуйте, valia, Вы писали:
V>Добрый день!
V>Подскажите, пжл, по какой причине может вылетать такое исключение:
V>System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object.
V>Ситуация такая: есть серверное приложение, в качестве которого выступает обычный сервис, есть клиент, реализованный в виде веб-сервиса, они взаимодействуют посредствам .NET Remoting. Соответсвенно на стороне сервера происходит настройка ремотинга:
V> HttpChannel channel = new HttpChannel(4000);
V> ChannelServices.RegisterChannel(channel);
V> RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingIntegrator), "IntegratorURI", WellKnownObjectMode.Singleton);
V> RemotingIntegrator rIntegrator = new RemotingIntegrator();
V> RemotingServices.Marshal(rIntegrator, "IntegratorURI");
V>и на стороне клиента:
V> HttpChannel channel = new HttpChannel();
V> ChannelServices.RegisterChannel(channel);
V> WellKnownClientTypeEntry remotetype = new WellKnownClientTypeEntry(typeof(Remoting.RemotingIntegrator),
V> "http://localhost:4000/IntegratorURI");
V> RemotingConfiguration.RegisterWellKnownClientType(remotetype);
Примерно так
Вот это:
V> rIntegrator = new RemotingIntegrator();
Заменить на:
rIntegrator = (RemotingIntegrator)Activator.GetObject(typeof(RemotingIntegrator), "
http://localhost:4000/IntegratorURI");
V>где
V>RemotingIntegrator — наследник MarshalByRefObject, одно из полей (public) класса RemotingIntegrator имеет тип ArrayList, также в RemotingIntegrator реализован метод AddTask, который отвечает за добаление элемента в этот ArrayList
V>Remoting — пространство имён, содержащее RemotingIntegrator.
V>Указанное исключение формируется при попытке вызова метода AddTask.
Копай метод AddTask. Там что-то == null, вот и ловится эксепшн. При создании объекта на клиенте через new — ты создаешь его локальный экземпляр, а не ссылку на синглтон с сервера (на сколько я это понимаю).
V>Заранее спасибо
Пожалуйста.
Всё заканчивается плохо. Если что-то закончилось хорошо — значит оно еще не закончилось.