Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WCF. Сервер закрыл соединение. 
V
    Опции темы
Экскалупатор
Дата 11.5.2010, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



всем привет. пишу приложение с использованием WCF. объявил контракт:
Код

public interface IServerService
    {
        [OperationContract]
        bool ValidateUser(string login, string pass, string post);
        [OperationContract]
        ProductData GetPriceForProduct(int CodeProduct, int Quantity);
        [OperationContract]
        DataTable GetAllTerminalInfo();
    }


когда вызываю методы возвращающие простые типы (bool, string и пр) или типы которые я сам объявил, к примеру ProductData
Код

public class ProductData
    {
        public int BarCode { get; set; }
        public double Price { get; set; }
        public string NameOfProduct { get; set; }
        public DiscountInfo Discount { get; set; }
        public int Quantity { get; set; }
        public string Measure { get; set; }
    }


то все нормально работает, даже если учесть то что мой тип не объявлен как сериалазебел, но когда пытаюсь вызвать метод который возвращает DataTable, то приложение падает с ошибкой "Базовое соединение закрыто: Соединение, которое должно было работать, было разорвано сервером." почему так происходит? объясните мне как это исправить. заранее спасибо.
PM MAIL ICQ   Вверх
mihryak
Дата 11.5.2010, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 3
Всего: 36



PM MAIL ICQ   Вверх
Экскалупатор
Дата 12.5.2010, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



mihryak, спасибо, достаточно было добавить имя передаваемой таблице и все заработало.

dt.TableName = "terminals";

нашел описание метода WriteXml

Код

public void WriteXml(XmlWriter writer, XmlWriteMode mode, bool writeHierarchy)
{
    IntPtr ptr;
    Bid.ScopeEnter(out ptr, "<ds.DataTable.WriteXml|API> %d#, mode=%d{ds.XmlWriteMode}\n", this.ObjectID, (int) mode);
    try
    {
        if (this.tableName.Length == 0)
        {
            throw ExceptionBuilder.CanNotSerializeDataTableWithEmptyName();
        }



как видно из кода, если имя не задано, то выпадает исключение.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.