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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменить Deserialization level? Как передать SqlCommand? 
V
    Опции темы
csprogrammer
Дата 3.10.2007, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

Мне нужно вызывать удалённый метод, передавать ему в качестве параметра SqlCommand и возвращать DataTable. Для этого я использую Remoting. При передаче запроса строкой всё работает. Но это не удобно. При передаче SqlCommand вызывается исключение "SerializationException: Because of security restrictions, the type System.Runtime.Remoting.ObjRef cannot be accessed." Прочитал в msdn, что существует настройка typeFilterLevel, которая по-умолчанию выставлена в значение "Low", что разрешает передавать только ограниченное количество типов, удовлетворяющих ряду требований. Установил её в конфиге сервера в значение "Full":

Код

  <system.runtime.remoting>
    <application>
      <service>
        <wellknown 
           mode="SingleCall" objectUri="Report_DataLoader.rem"
           type="Report_DataLoader, RemoteAccess"/>
        <wellknown 
           mode="Singleton" objectUri="ConnectionManager.rem"
           type="ConnectionManager, RemoteAccess"/>
      </service>
      <channels>
        <channel ref="http" />
    <serverProviders> 
     <provider ref="wsdl" />
     <formatter ref="soap" typeFilterLevel="Full" />
     <formatter ref="binary" typeFilterLevel="Full" />
    </serverProviders>
      </channels>
    </application>
  </system.runtime.remoting>


Никакого эффекта это не произвело, при попытке передачи SqlCommand вызывается тоже самое исключение. Подскажите пожалуйста, как поменять настройку.
PM MAIL   Вверх
tol05
Дата 3.10.2007, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

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



а для клиента typeFilterLevel="Full" не нужен? В обмене "ограниченными"  типами и клиент, и север участвуют.


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
csprogrammer
Дата 3.10.2007, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос снимается. Автор признаёт себя "слегка" рассеянным:

надо так:

Код

<channels>
    <channel ref="http">
      <serverProviders> 
        <provider ref="wsdl" />
        <formatter ref="soap" typeFilterLevel="Full" />
        <formatter ref="binary" typeFilterLevel="Full" />
      </serverProviders>
    </channel>
</channels>


Добавлено через 2 минуты и 41 секунду
Цитата

а для клиента typeFilterLevel="Full" не нужен? В обмене "ограниченными"  типами и клиент, и север участвуют.


Нужен, но только в случае, если нужно обрабатывать события или callback-и переданного объекта.
PM MAIL   Вверх
arilou
Дата 5.10.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

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



Интересно, зачем передавать SqlCommand - это как то некошерно...


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

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

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

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


 




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


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

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