У меня есть два проекта. У одного есть служба wcf и база данных. Другой используется для вызова этих функций. Если я вызываю функцию webservice, которая добавляет что-то в базу данных, она отлично работает. Но когда я вызываю функцию, которая извлекает что-то из базы данных. Я получаю CommunicationException. Функция Я звоню в WebService.svc.cs является:Вызов функции get wcf throws CommunicationException
public List<Artist> GetAllArtists()
{
Database1Entities db = new Database1Entities();
return (db.Artists).ToList();
}
И я звоню его как этот
protected void Page_Load(object sender, EventArgs e)
{
ServiceReference2.WebServiceClient o = new ServiceReference2.WebServiceClient();
Artist [] artists = o.GetAllArtists(); //Exception arises here
string str = "";
foreach (Artist artist in artists){
str += artist.ArtistID + " ";
}
Response.Write(str);
gv.DataSource = artists;
gv.DataBind();
}
Исключение:
System.ServiceModel.CommunicationException был необработанный по коду пользователя HResult = -2146233087 Сообщение = Произошла ошибка при получении ответа HTTP на http://localhost:23060/WebService.svc. Это может быть вызвано привязке конечной точки службы, не использующей протокол HTTP. Этот также может быть вызван тем, что контекст HTTP-запроса прерывается сервером (возможно, из-за отключения службы). Для получения более подробной информации см. Журналы сервера . Источник = mscorlib StackTrace: стек сервера трассировки: в System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException (WebException WebException, HttpWebRequest запрос, HttpAbortReason abortReason) в System.ServiceModel.Channels.HttpChannelFactory1.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan тайм-аут) в System.ServiceModel.Channels.RequestChannel.Request (сообщение Message, TimeSpan таймаута) в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (Message
сообщение, TimeSpan таймаут) в System.ServiceModel.Channels.ServiceChannel. Call (String action, Boolean oneway, ProxyOperationRuntime operation, Object [] ins, Object [] Диффузоры, TimeSpan тайм-аут) на System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (IMethodCallMessage methodCall, операция ProxyOperationRuntime) на System.ServiceModel.Channels.ServiceChannelProxy.Invoke (IMessage
сообщение) Исключение при вызваны повторно [ 0]: на System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, Шеззаде retMsg) на System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData &
msgData, типа Int32) в WebLab6AlbumManagementSystemClient .ServiceReference2.IWebService.GetAllArtists() в WebLab6AlbumManagementSystemClient.ServiceReference2.WebServiceClient.GetAllArtists() в C: \ Users \ Muhammad Rehan \ Documents \ Visual Studio
2013 \ Projects \ WebLab6AlbumManagementSystemClient \ Service
Ссылки \ ServiceReference2 \ Reference.cs: линия 567 в WebLab6AlbumManagementSystemClient. ViewAllArtists.Page_Load (Object
отправителя, EventArgs е) в C: \ Users \ Muhammad Rehan \ Documents \ Визуальная
Студия
2013 \ Projects \ WebLab6AlbumManagementSystemClient \ ViewAllArtists.aspx.cs: линия в System.Web. Util.CalliEventHandlerDelegateProxy.Callback (отправитель объекта, EventArgs e) в System.Web.UI.Control.OnLoad (EventArgs e) в System.Web.UI.Control.LoadRecursive() на System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, булева includeStagesAfterAsyncPoint)InnerException: System.Net.WebException HResult = -2146233079 Сообщение = Базовое соединение закрыто: Непредвиденная ошибка при приеме. Источник = Система StackTrace: на System.Net.HttpWebRequest.GetResponse() в System.ServiceModel.Channels.HttpChannelFactory1.HttpRequestChannel.HttpChannelRequest.WaitForReply (TimeSpan таймаута) InnerException: System.IO.IOException HResult = -2146232800 Сообщение = Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. Source = System StackTrace: в System.Net.Sockets.NetworkStream.Read (Байт [] buffer, Int32 offset, Int32 size) в System.Net.PooledStream.Read (Байт [] буфер, смещение Int32, размер Int32) в System.Net.Connection.SyncRead (HttpWebRequest запроса, Boolean userRetrievedStream, Boolean probeRead) InnerException: System.Net.Sockets.SocketException HResult = -2147467259 Сообщение = Ап существующее соединение было принудительно закрыто удаленным узлом Source = System ErrorCode = 10054 NativeErrorCode = 10054 StackTrace: at System.Net.Sockets.Socket.Receive (Byte [] buffer, Int32 offset, Int32 размер, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Read (Byte [ ] buffe г, Int32 смещение, Int32 размер) InnerException:
Является ли 'Художник'' DataContract'? – sac1
Это операцияContract. Я имею в виду GetAllArtists() - OperationContract. В то время как ничто не написано на вершине Artist и Artist, сгенерировано из db автоматически, используя модель данных сущностей ado.net из базы данных. –