Я использую сервис 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.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan
тайм-аут) в
System.ServiceModel.Channels.RequestChannel.Request (Message
сообщение, TimeSpan timeout) в
System.ServiceModel.Dispatcher.RequestChannelBinder.Request (Message
сообщение, TimeSpan timeout) в
System.ServiceModel.Channels.ServiceChannel.Call (String
действие, логическое одностороннее,
Операция ProxyOperationRuntime,
Object [] ins, Object [] outs, TimeSpan
тайм-аут) в
System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage
methodCall, ProxyOperationRuntime
операция) в
System.ServiceModel.Channels.ServiceChannelProxy.Invoke (Шеззаде
сообщение) Исключение переброшено в [0]:
в
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (Шеззаде
reqMsg, IMessage retMsg) в
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData &
msgData, тип Int32) в
IFindStore.My_Stores (String URL) в
FindStoreClient.My_Stores (String URL)
Внутреннее исключение: основной
соединение было закрыто: соединение
был закрыт неожиданно. в
System.Net.HttpWebRequest.GetResponse ()
в
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan
Тайм-аут)
Я хотел бы знать, как получить контракт данных для класса, который имеет другие классы в качестве своих полей.
Должен ли я записать объект в поток с помощью datacontractserialzer (даже если контракт данных использует datacontractserializer). Должен ли я использовать XmlSerializer?
Заранее спасибо