Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Как примечание, необходимо изучить, как использовать WCF регистрирующиеся утилиты:
Редактор Конфигурации (делает его защелкой для установки).
Средство просмотра трассировки. Полностью потрясающий. Позволяет многочисленным услугам (клиент и сервер) прослеживать и может присоединиться к ним и помочь Вам проанализировать все подробности. Позволяет Вам добраться до корня проблем действительно быстро. (Причина, когда будет сервер ошибка WCF, клиент, вряд ли выведет полезные данные.)
Хорошо я наконец нашел настоящую проблему в своем случае. Кажется, что перечисления представления не являются самой большой вещью в мире. Я или должен установить значение по умолчанию на них, или вместо этого представить свойство как интервал или безотносительно целого типа, на основе которого мое перечисление.
спасибо за помощь, у Вас не было способа знать это - я нашел перечисления на 3-м уровне в моей структуре, и systematicly, удаляющий datamembers один за другим, был способом, которым я узнал. Кажется, что я не единственный, кто столкнулся с этой проблемой - у этого парня, очевидно, были подобные проблемы:)
это - на самом деле та же информация как Ваше первое описание исключения. было бы интересно, какова исходная причина для socketexception была. это должен быть некоторый тип ошибки в самом сервисе. можно ли расположиться, где точно whar исключение происходит?
у меня были подобные ошибки при попытке возвратить нормальные IEnumerables, которые были перезаписаны (они были отмечены как виртуальные) NHibernate и substitued с GenericPersistentBag, который не является сериализуемым. Вы отметили свой IEnumerable datamembers как виртуальный из-за nhibernate или чего-то подобного? это могло объяснить Вашу ошибку.
btw. wcf исключения часто довольно бессмысленны (который может быть очень печальным при разыскивании ошибки;)
Вы определяли в своей сервисной конфигурации поведения? кажется, что некоторая информация отсутствует в этом stacktrace.
может Вы захватывать исключение в стороне сервера (например, в режиме отладки Visual Studio или с регистрирующейся библиотекой как log4net).
Вы попытались назвать некоторые другие методы (простой helloworld (), например) на том же сервисе быть уверенными, что сама сервисная конфигурация работает? этот вид exceptino мог также указать на некоторые проблемы сериализации. какие типы Вы хотите отправить по проводу? Вы используете KnownType где-нибудь?
Server Error in '/' Application.
--------------------------------------------------------------------------------
An existing connection was forcibly closed by the remote host
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[SocketException (0x2746): An existing connection was forcibly closed by the remote host]
System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) +93
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) +119
[IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.]
System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) +267
System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) +25
System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead) +306
[WebException: The underlying connection was closed: An unexpected error occurred on a receive.]
System.Net.HttpWebRequest.GetResponse() +1532114
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +40
[CommunicationException: An error occurred while receiving the HTTP response to http://Zzzstrukturservice.xxx.dk/ZzzstrukturService.svc. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.]
System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +2668969
System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +717
xxx.Services.ZzzstrukturServiceClient.ZzzstrukturServiceProxy.IZzzstrukturService.GetMatrixSet(Int32 matrixSetId) +0
xxx.Services.ZzzstrukturServiceClient.ZzzstrukturRepository.GetMatrixSetById(Int32 matrixSetId) in f:\ccnet\work\xxx.Zzzstruktur\1. Presentation Layer\ZzzstrukturServiceClient\ZzzstrukturRepository.cs:90
xxx.yyy.yyyWeb.AnnoncePage.OnLoad(EventArgs e) in f:\ccnet\work\yyyV2\1. Presentation Layer\yyyWeb\Annonce.aspx.cs:40
System.Web.UI.Control.LoadRecursive() +47
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.1433; ASP.NET Version:2.0.50727.1433
Я не знаю, почему это может произойти. но у меня также были подобные проблемы.
я изменил свой enums.remove индексы (например, ASNOrder = 1,-> ASNOrder), и никакая ошибка occoured.
У меня тоже была такая же проблема (.NET 3.5). Оказывается мой базовый класс Datacontratt
отсутствовал известного типа. К сожалению, ошибка WCF была не более описательной.
Не возвращайте литерату Ienumerable
в договоре, есть знаменитый BCF BUG
Добавьте эту строку в
:
<httpRuntime maxRequestLength="102400" executionTimeout="3600" />
Да, у меня была та же проблема, и это было связано с возвратом объектов, в которых были значения перечисления. Изменил DataMember
на int, и все заработало.
Попробуйте установить [OperationBehavior()]
над вашей реализацией метода интерфейса.