У меня есть решение, которое содержит три проекта.
Основной проект с моим приложением MVC, приложением silverlight и сервисным проектом WCF (с поддержкой silverlight).
В моем проекте silverlight я сделал ссылку на сервис для моей службы WCF.
И у меня это получилось.
В моей службе WCF у меня есть метод, который возвращает объект Book, который получил несколько случайных полей, таких как заголовок, дата и т. Д.
В классе книги у меня есть поле ICollection, которое содержит список событий.
Класс книги сгенерирован с использованием платформы лица 4.0, и включена отложенная загрузка.
Если я в своем методе getBook (int id) возвращает книгу с не инициализированным полем событий, это работает как чудо.
Но если я инициализирую поле, я получаю эту ошибку.
The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.
У меня есть несколько идей, почему это происходит, и во время написания этого у меня просто есть еще одна.
Служба wcf как-то выбросила ссылку на класс события.
Это было бы очень странно, так как у меня есть ссылка между моим основным приложением mvc (с моделями) и моим сервисом WCF.
Поскольку я включил отложенную загрузку в EF 4.0, я подозреваю, что это может быть причиной ошибки.
Но я не уверен, почему это так, потому что я никоим образом не получаю доступ к этой области. Я мог понять, что, возможно, не смогу получить доступ к полю событий после того, как получу объект в своем приложении silverlight, так как связь между объектом книги и структурой сущностей как разорвана.
Я упоминал, что на моем экземпляре EF включена отложенная загрузка?
И в брошенном исключении нет внутреннего исключения.
EDIT:
Это (я думаю) исключение на сервере.
Базовое соединение было закрыто: соединение было неожиданно закрыто.
Трассировка стека серверов:
в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException webException, запрос HttpWebRequest, HttpAbortReason abortReason)
в System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan timeout)
в System.ServiceModel.Channels.RequestChannel.Request (сообщение-сообщение, время ожидания TimeSpan)
в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (сообщение-сообщение, время ожидания TimeSpan)
в System.ServiceModel.Channels.ServiceChannel.Call (строковое действие, логический односторонний режим, операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout)
в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (метод IMethodCallMessageCall, операция ProxyOperationRuntime)
в System.ServiceModel.Channels.ServiceChannelProxy.Invoke (сообщение IMessage)
Исключение переброшено в [0]:
в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg)
в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32)
на RemoteProvider.getTimeline (идентификатор Int32)
at RemoteProviderClient.getTimeline (Int32 id)
Внутреннее исключение:
Основное соединение было закрыто: соединение было неожиданно закрыто.
в System.Net.HttpWebRequest.GetResponse ()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan timeout)
Спасибо заранее.
Malte Baden Hansen