Как мне разрешить это исключение WCF?C#

Место общения программистов C#
Anonymous
Как мне разрешить это исключение WCF?

Сообщение Anonymous »

У меня возникли проблемы со службой WCF. Возвращаемый тип — это полусложный тип, который ссылается на различные базовые типы и базовый интерфейс, от которого наследуется каждый из этих типов.

В моей отладке общий байт размер сериализованного сообщения значительно ниже порогового значения по умолчанию в 65535 байт. Тем не менее, я увеличил атрибут maxReceivedMessageSize до 1000000, но проблема осталась.

Служба WCF определяется следующим образом:

Код: Выделить всё

[ServiceContract]
public interface ILoggingService
{
[OperationContract]
NotesInfo ListNotes(NotesQueryOptions options);
}
Вот определение возвращаемого объекта NotesInfo:

Код: Выделить всё

[DataContract]
public class NotesInfo
{
[DataMember] public List Notes { get; set; }
[DataMember] public Dictionary Users { get; set; }
[DataMember] public Dictionary NoteCategories { get; set; }
[DataMember] public Dictionary EntitiesByToken { get; set; }
}
Когда я пытаюсь вызвать службу, возникает следующее исключение:

< blockquote>
Сервер не предоставил
значимого ответа; это может быть вызвано
несоответствием контракта, преждевременным
завершением сеанса или внутренней ошибкой
сервера. Описание: Необработанное
исключение во время
выполнения текущего веб-запроса.
Просмотрите трассировку стека, чтобы получить дополнительную
информацию об ошибке и о том, откуда
она возникла. в коде.

Сведения об исключении:
System.ServiceModel.CommunicationException:
Сервер не предоставил
значимого ответа; это может быть вызвано
несоответствием контракта, преждевременным
завершением сеанса или внутренней ошибкой
сервера.

Ошибка источника:< /p>

Код: Выделить всё

Line 242:
Line 243: public AxeFrog.Mobile.NotesInfo ListNotes(AxeFrog.Mobile.NotesQueryOptions options) {
Line 244:            return base.Channel.ListNotes(options);
Line 245:        }
Line 246:    }

Исходный файл:
C:\Users\Nathan\Work\Internal
Projects\AxeFrog
System\Source\Trunk\AxeFrog.Mobile.WebInterface\Service
References\LoggingServiceReference\Reference.cs
Строка: 244


Ниже приведен код других задействованных объектов:

Код: Выделить всё

public interface IIdentifiable
{
TID ID { get; set; }
}

[DataContract]
public class Note : IIdentifiable
{
[DataMember] public long ID { get; set; }
[DataMember] public DateTime DateStamp { get; set; }
[DataMember] public long? UserID { get; set; }
[DataMember] public long NoteCategoryID { get; set; }
[DataMember] public NoteType NoteType { get; set; }
[DataMember] public string Message { get; set; }
}

public enum NoteType
{
Information = 0,
Warning = 10,
Failure = 20
}

[DataContract]
public class NoteCategory : IIdentifiable
{
[DataMember] public long ID { get; set; }
[DataMember] public string Name { get; set; }
}

[DataContract]
public class NoteEntityType : IIdentifiable
{
[DataMember] public long ID { get; set; }
[DataMember] public Type TypeName { get; set; }
}

[DataContract]
public class TokenizedNote
{
[DataMember] public Note Note { get; set; }
[DataMember] public List NoteSegments { get; set; }
}

public abstract class NoteSegment
{
public abstract string Render(INoteRenderer renderer, Dictionary entitiesByToken);
}

[DataContract]
public class NoteTextSegment : NoteSegment
{
[DataMember]
public string Text { get; set; }
}

[DataContract]
public class NoteEntitySegment : NoteSegment
{
[DataMember] public long EntityID { get; set; }
[DataMember] public string Token { get; set; }
}
Обратите внимание, что я удалил переопределения Render() из абстрактных реализаций NoteSegment ради удобства чтения.

Вот некоторая информация от отладчика, чтобы вы могли увидеть, что возвращается:

Изображение
Изображение

Буду признателен за любую информацию о том, что я делаю неправильно. Поиск в Google дает мало полезных ответов.

Подробнее здесь: https://stackoverflow.com/questions/138 ... -exception

Вернуться в «C#»