Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Silverlight и БД MS SQL 2008, После апдейта записи в приложении вылета 
:(
    Опции темы
nikich92
Дата 7.6.2012, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



всем доброго времени суток. Ребят, помогите, пожалуйста, решить следующую проблему. Есть Сильверлайт 4 приложение, которое загружает данные из БД через сервис WCF, в базе хранятся данные о контактах. После апдейта записи в приложении вылетает ошибка "Удаленный сервер возвратил ошибку: NotFound." в файле Reference.cs в данном блоке:
 
Код

public int EndUpdateContact(System.IAsyncResult result) {
                object[] _args = new object[0];
                int _result = ((int)(base.EndInvoke("UpdateContact", _args, result))); //вот в этой строке
                return _result;
            }

судя по всему, это происходит из-за добавления данных в поле photo, потому что если его не добавлять, то обновление происходит нормально.
Обновление проводится так:
Код

private void update_Click(object sender, RoutedEventArgs e)
        {
            if (Validate())
            {
                ServiceContacts1Client contacts = new ServiceContacts1Client();
                contacts.UpdateContactCompleted += new EventHandler<UpdateContactCompletedEventArgs>(contacts_UpdateContactCompleted);
                ServiceContacts contact = new ServiceContacts();
                ServiceContacts tempcont = new ServiceContacts();
                tempcont = (ServiceContacts)dataGrid1.SelectedItem;
                contact.idCont = tempcont.idCont;
                contact.first_name = firstName.Text;
                contact.last_name = lastName.Text;
                contact.mobile_phone = mobile.Text;
                contact.home_phone = homePhone.Text;
 
                if (image1.Source != null)
                {
                    contact.photo = GetBytesFromImage((BitmapImage)image1.Source);
                }
                contacts.UpdateContactAsync(contact);
            }
        }

подскажите, пожалуйста, как решить проблему? Заранее благодарю за помощь.

Это сообщение отредактировал(а) nikich92 - 7.6.2012, 16:33
PM MAIL ICQ Skype   Вверх
erm0l0v
Дата 7.6.2012, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Посмотрите в отладчике, попадает ли в сам сервис UpdateContact.

У свойства photo задан атрибут DataMember?

Также возможно стоит покопаться в конфиге и увеличить максимальную длину сообщения.
PM MAIL   Вверх
nikich92
Дата 8.6.2012, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(erm0l0v @ 7.6.2012,  22:12)
Посмотрите в отладчике, попадает ли в сам сервис UpdateContact.

У свойства photo задан атрибут DataMember?

Также возможно стоит покопаться в конфиге и увеличить максимальную длину сообщения.

во время отладки при входе в метод contacts.UpdateContactAsync(contact); сразу идет переход в Reference.cs и выполняется вот эта часть кода
Код

 public System.IAsyncResult BeginUpdateContact(ContactsApp.ServiceReference1.ServiceContacts contact, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = contact;
                System.IAsyncResult _result = base.BeginInvoke("UpdateContact", _args, callback, asyncState);
                return _result;
            }

а потом уже вылетает ошибка, о которой я писал выше. В код самого сервиса во время отладки вход не выполняется. А вот если закомментировать код
Код

  if (image1.Source != null)
                {
                    contact.photo = GetBytesFromImage((BitmapImage)image1.Source);
                }

то все нормально обновляется

подскажите, пожалуйста, как в конфиге увеличить максимальную длину сообщения?

Это сообщение отредактировал(а) nikich92 - 8.6.2012, 00:18
PM MAIL ICQ Skype   Вверх
erm0l0v
Дата 8.6.2012, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вы можете в бинденге указать свойство:
Код

maxReceivedMessageSize="200000000"


но этого по моему будет недостаточно. нужно еще в
Код

<system.web>


добавить
Код

<httpRuntime maxRequestLength="200000000"/>


как то так.

Но проверить действительно ли это из за ограниченной длинны сообщения просто, передайте в contact.photo какой нибудь маленький массив байт.
PM MAIL   Вверх
nikich92
Дата 8.6.2012, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(erm0l0v @ 8.6.2012,  10:47)
Вы можете в бинденге указать свойство:
Код

maxReceivedMessageSize="200000000"


но этого по моему будет недостаточно. нужно еще в
Код

<system.web>


добавить
Код

<httpRuntime maxRequestLength="200000000"/>


как то так.

Но проверить действительно ли это из за ограниченной длинны сообщения просто, передайте в contact.photo какой нибудь маленький массив байт.

да, действительно из-за длины массива, у меня изображение используется 128х128, следовательно массив получается с 65536 элементами. Только что попробовал передать маленький массив - обновляется нормально.
а можно поподробней теперь как и где длину выставлять? Лучше в личку или по аське или скайпу (nikich0601). Буду очень признателен.

PM MAIL ICQ Skype   Вверх
nikich92
Дата 8.6.2012, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(nikich92 @ 8.6.2012,  11:02)
Цитата(erm0l0v @ 8.6.2012,  10:47)
Вы можете в бинденге указать свойство:
Код

maxReceivedMessageSize="200000000"


но этого по моему будет недостаточно. нужно еще в
Код

<system.web>


добавить
Код

<httpRuntime maxRequestLength="200000000"/>


как то так.

Но проверить действительно ли это из за ограниченной длинны сообщения просто, передайте в contact.photo какой нибудь маленький массив байт.

да, действительно из-за длины массива, у меня изображение используется 128х128, следовательно массив получается с 65536 элементами. Только что попробовал передать маленький массив - обновляется нормально.
а можно поподробней теперь как и где длину выставлять? Лучше в личку или по аське или скайпу (nikich0601). Буду очень признателен.

разобрался. Теперь появилась еще одна проблема - после добавления в БД изображение становится пустым
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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