Я использую службу WCF для реализации своей веб-службы. У меня проблема, когда я пытаюсь вызвать свою функцию, которая принимает URL-адрес в качестве входного параметра и возвращает класс объекта, который был определен мной.
public class Service: IService<br>
{
public ClassWS My_Stores(String URL)
{
try
{
//ClassWS is a class which has other classes like address() defined by me
ClassWS My_WS = new ClassWS ();
return ClsStore.My_Stores(URL);
}
catch (Exception ex)
{}
}
}
[DataContract]
public class ClassWS
{
[DataMember]
public granularity Granularity;
[DataMember]
public address[] Address = new address[5];
[DataMember]
public Store[] Stores;
[DataMember]
public int Status;
public ClassWS My_Stores(String URL)
{
ClassQuery q = new ClassQuery();
return (sq.PopulateStores(URL));
}
}
Я включил каждый определенный мною класс в DataContract, как и в предыдущем классе. Я получаю указанную ниже ошибку, когда пытаюсь вернуть ClassWS
, но не имею ошибки с возвратом Store [] или Address []
Я получаю сообщение об ошибке. Ошибка не возвращается в служебном коде, но возникает при перенастройке значения на прокси.
Базовое соединение было закрыто: соединение было неожиданно закрыто. Трассировка стека сервера:
в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException webException, запрос HttpWebRequest, HttpAbortReason abortReason) в System.ServiceModel.Channels.HttpChannelFactory. Channels.RequestChannel.Request (сообщение сообщения, тайм-аут TimeSpan) в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (сообщение сообщения, тайм-аут TimeSpan) в System.ServiceModel.Channels.ServiceChannel.Call (действие String, операция Boolean oneway, ProxyOneway [] ins, Object [] out, тайм-аут TimeSpan) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, операция ProxyOperationRuntime) в System.ServiceModel.Channels.ServiceChannelProxy.Invokeception (сообщение IMethodChannelProxy.Invokeception) [0]
в System.Runtime.Remoting.Proxies.RealPr oxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) в IFindStore.My_Stores (URL-адрес строки) в FindStoreStoreClientception (URL-адрес String) в FindStoreClientception.My соединение было закрыто: соединение было неожиданно закрыто. в System.Net.HttpWebRequest.GetResponse () в System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (тайм-аут TimeSpan)
Я хотел бы знать, как получить контракт данных для класса, у которого в качестве полей есть другие классы.
Должен ли я записывать объект в поток с помощью datacontractserialzer (даже если в контракте данных используется datacontractserializer). Должен ли я использовать XmlSerializer?
заранее спасибо