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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Контрол или Веб Сервис? Контрол или Веб Сервис? 
:(
    Опции темы
cosamia
Дата 19.1.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



вобщем нужно сделать класс (с методом создания win окна) который бы можно было использовать в веб

проекте. класс можно сделать либо как:
1) COM объект (что уже сделано и работает)
2) компонент (derived from Component)
3) web service

при 2м варианте(наследование от Component), возникает такой вопрос:

вот код компонента:
using System;
using System.Windows.Forms;
using System.ComponentModel;
namespace MyComplib{
public class Compclass:Component{
public Form dlg;
public void mywin(){
dlg=new Form();
dlg.ShowDialog();
}
}
}

вот код на веб странице который создает класс и вызывает нужный метод:
Container cont=new Container();
Compclass comp=new Compclass();
cont.Add(comp);
comp.mywin();
cont.Dispose();

но при клике вылетает ошибка:
It is invalid to show a modal dialog or form when the application is not running in UserInteractive

mode. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a

service application.

Что за UserInteractive mode?
правильно ли я применил подход или нет?



3й вариант: использование веб сервиса
вот код веб сервиса:
using System;
using System.Windows.Forms;
using System.Web.Services;
[WebService]
class MyCompService{
public Form dlg;
[WebMethod]
public void mywin(){
dlg=new Form();
dlg.ShowDialog();
}
}
сервис скомпилировался нормально.

для использования его, использовал win client приложение. ошибка вылетает такая:
System.Web.Services.Protocols.SoapException: Server was unable to process request -->

InvalidOperationException: It is invalid to show a modal dialog or form when the app is not running

in UserInteractive mode. Specify the ServuceNotification or DefaultDesktopOnly style to display a

notification from a service app.

Вобщем снова непонятно что за UserInteractiveMode и в чем же ошибка?
Неужели только через ком -компонент можно такое сделать? Наверняка можно эту задачу выполнить и

через наследование Component и через web service.


PM   Вверх
mr.DUDA
Дата 20.1.2006, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(cosamia @ 19.1.2006, 21:43 Найти цитируемый пост)
3й вариант: использование веб сервиса
вот код веб сервиса:
using System;
using System.Windows.Forms;
using System.Web.Services;
[WebService]
class MyCompService{
public Form dlg;
[WebMethod]
public void mywin(){
dlg=new Form();
dlg.ShowDialog();
}
}
сервис скомпилировался нормально.

Догадайтесь с двух раз, где будет (если будет вообще) показана форма - на веб-сервере или у клиента smile

Подходит первый вариант. Делаем Class Library, куда добавляем свой компонент (наследуемся от UserControl). На веб-странице прописываем в теге object наш контрол (не помню точно, как именно, но тема где-то раньше обсуждалась, либо на RSDN можно поискать).


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

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

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

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


 




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


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

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