Настройка .NET Remoting
От: valia  
Дата: 29.10.08 12:29
Оценка:
Добрый день!

Подскажите, пжл, по какой причине может вылетать такое исключение:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.NullReferenceException: Object reference not set to an instance of an object.

Server stack trace:
at System.Runtime.Serialization.Formatters.Soap.ObjectWriter.WriteMembers(NameInfo memberNameInfo, NameInfo memberTypeNameInfo, Object memberData, WriteObjectInfo objectInfo, NameInfo typeNameInfo, WriteObjectInfo memberObjectInfo, Boolean isAttribute)
at System.Runtime.Serialization.Formatters.Soap.ObjectWriter.WriteMemberSetup(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, String memberName, Type memberType, Object memberData, WriteObjectInfo memberObjectInfo, Boolean isAttribute)
at System.Runtime.Serialization.Formatters.Soap.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, String[] memberNames, Type[] memberTypes, Object[] memberData, WriteObjectInfo[] memberObjectInfos)
at System.Runtime.Serialization.Formatters.Soap.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
at System.Runtime.Serialization.Formatters.Soap.ObjectWriter.Serialize(Object graph, Header[] inHeaders, SoapWriter serWriter)
at System.Runtime.Serialization.Formatters.Soap.SoapFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers)
at System.Runtime.Remoting.Channels.CoreChannel.SerializeSoapMessage(IMessage msg, Stream outputStream, Boolean includeVersions)
at System.Runtime.Remoting.Channels.SoapClientFormatterSink.SerializeMessage(IMethodCallMessage mcm, ITransportHeaders& headers, Stream& stream)
at System.Runtime.Remoting.Channels.SoapClientFormatterSink.SyncProcessMessage(IMessage msg)

Ситуация такая: есть серверное приложение, в качестве которого выступает обычный сервис, есть клиент, реализованный в виде веб-сервиса, они взаимодействуют посредствам .NET Remoting. Соответсвенно на стороне сервера происходит настройка ремотинга:
HttpChannel channel = new HttpChannel(4000);
ChannelServices.RegisterChannel(channel);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingIntegrator), "IntegratorURI", WellKnownObjectMode.Singleton);
RemotingIntegrator rIntegrator = new RemotingIntegrator();
RemotingServices.Marshal(rIntegrator, "IntegratorURI");
и на стороне клиента:
HttpChannel channel = new HttpChannel();
ChannelServices.RegisterChannel(channel);
WellKnownClientTypeEntry remotetype = new WellKnownClientTypeEntry(typeof(Remoting.RemotingIntegrator),
"http://localhost:4000/IntegratorURI");
RemotingConfiguration.RegisterWellKnownClientType(remotetype);
rIntegrator = new RemotingIntegrator();
где
RemotingIntegrator — наследник MarshalByRefObject, одно из полей (public) класса RemotingIntegrator имеет тип ArrayList, также в RemotingIntegrator реализован метод AddTask, который отвечает за добаление элемента в этот ArrayList
Remoting — пространство имён, содержащее RemotingIntegrator.

Указанное исключение формируется при попытке вызова метода AddTask.

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