![]() |
|
Модераторы: gambit |
![]()
|
|
| Servena |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Здравствуйте. Появилась интересная проблема: нужно добавить динамически подключаемую библиотеку написаную на
.NET на .aspx страничку. Делаю так, сначала создаю библиотеку:
потом добавляю ее на .aspx, перед этим скопировав саму библиотеку в папку, где лежит страничка:
В итоге, после перехода на эту страницу, пишет, что у объекта t нет такого свойства (использую IE, а в качестве сервера - IIS). Может кто подскажет как это сделать или даст ссылки на необходимые источники? Заранее, большое спасибо. |
||||
|
|||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Вообщем, кому это будет интересно - то есть уже кое какие результаты. Пишите.
Зачем это? Опишу мой случай. Имеется фирма в которой есть лаборатория, в которой есть электронные весы подключенные к компьютеру. Также имеется внутри предприятия некая система(приложение, построенное на АСП.НЭТ), которая, в частности, использует измерения с этих весов. Так вот, показания измерений снимаются прямо с ВЭБ-странички (это никаким джаваскриптом, например, не сделаешь). На сервере есть ДЛЛ билблиотека (написана на C#) для работы с этими весами и когда на неком компьютере запускается страничка для измерений - с сервера передается браузеру эта библиотека, которая может произвести измерения. Таким образом все происходит на страничке, не нужно создавать никаких дополнительных приложений и т.п. Работает это пока только под ИЕ. |
|||
|
||||
| HAL707 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 6.9.2007 Репутация: 2 Всего: 4 |
Ничего себе архитектура...
А почему просто не серверная страничка, которая сама проводит измерения, исполузуя свою локальную библиотеку? Тогда бы другие пользователи смогли бы получать результаты подключившись к этой страничке, безо всякого шаманизма с dll... Или я чего-то не учитываю? |
|||
|
||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Сервер один, а лаборатория от него находится на приличном растоянии, к тому же их (лабораторий) несколько.
Человек, загружает приложение(через Вэб-браузер). Как вэб-страничка может снять показания с RS-232? Если у тебя есть идеи - то давай их. Пока все разрабатывается с использование встроенного элемента управления в веб-страничку, который пишется на C# и есть ряд проблем, основная из них сейчас это: как лучше всего разработать механизм обработки ошибок (исключений) чтобы его понимал Джаваскрипт, используя эту библиотеку. К тому же, с точки зрения пользователя это очень удобно - загружая страничку, он даже не подозревает, что с сервера загружается какая-то библиотека(20 Кб), он просто берет и пользуется страничкой. |
|||
|
||||
| HAL707 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 6.9.2007 Репутация: 2 Всего: 4 |
Да не веб-страничка. А сервер. Страничка только отображает результат... Хотя если весы находятся в лаборатории, не рядом с сервером, то сказанное мной теряет смысл. То есть идея была в том, что сервер сам проводит измерения (используя эту библиотеку для RS-232 и весы) и тупо формирует сраничку результатов, которую может просмотреть любой. |
|||
|
||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Нет, идея в том, что производить измерения можно ГДЕ УГОДНО, лишь бы к компьютеру были подключены весы
и он имел доступ к соответствующей вэб-страничке. Измерения проводит ДЛЛ, которая хранится на сервере и когда человек загружает Вэб-страничку - библиотека автоматически пересылается в то место, от куда пришел запрос и инициализирует измерения. |
|||
|
||||
| andrew_sh |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 60 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
ну что, разабрались с проблемой ??? В проекте в котором я принимаю участие похожая структура. Предполагаю решение в использование property. У меня по крайней мере работает.
Это сообщение отредактировал(а) andrew_sh - 14.11.2007, 22:48 |
|||
|
||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Да, все получилось. Входим в фазу испытаний. Есть одна проблема с безопасностью. На одних компьютерах работает, на других нет. И вроде бы выставляем в настройках .НЭТа - Full trust для зоны в которой используется сборка, но все равно где-то еще влияют настройки самого браузера. Вобщем, тема пока очень туманна. Как правильно настроить ИЭксплоер, .НЭТ чтобы оно работало 100% ??? (даже спросить пока не у кого).
Сейчас буду пробовать еще сделать так, чтобы библиотека лежала в одном месте, а не как сейчас - в двух разных местах одна и та же библиотека. Попытаюсь использовать найденную ТОБОЙ информацию. Сообщу о результате. |
|||
|
||||
| Zakonnic |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 3 Всего: 6 |
Очень странная проблема. Похоже с архитектурой что-то не так. По идее у этой dll параметры безопасности не должны давать доступ к компу клиента, иначе она может чего-нибудь напортачить (переслать папку "мои документы" в ненужное вам место
Почему не сделать мини-приложение, устанавливаемое через веб одним кликом по ссылке (вроде технология так и называется - click once) и общающееся с веб-сервисом или даже тупо http запросами? В конце-концов оборудвание обычно стационарно соединено с машиной и можно поставить полноценное приложение, скачиваемое с сайта. Хотя, наверное, вы этот вариант рассматривали... Кстати, Silverlight (новая технология от MS) вроде специально разработана, чтобы закачивать длл на клиента. Ну в смысле - это как флеш, но с дллками и полной поддержкой дотнет. Правда там тоже приложения работают в сендбоксе. Но можно порыть и в этой области: http://www.microsoft.com/silverlight/ --------------------
...и никогда не пишите в комментариях правду |
|||
|
||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Zakonnic,
на счет безопастности: у ДЛЛ-ки есть строгое имя (там много цифр), так что подсунуть другую будет сложно. Да и на уровне Корпрации будет настроено что ей можно делать (пока там фул траст - но мы над этим работаем), так что даже если это будет левая библиотека - она не сможет сделать что-то не то. На счет безопасности, эта технология намного продвинутее, чем АктивХ.
- работник не должен задумываться еще что-нибудь устанавливать, он просто должен снимать данные. К тому же, если это отдельное приложение - то ему тоже нужно давать доступ в БД на сервер? Или как оно будет передавать данные для обработки на сервер? И как это будет связано с основной системой? Вообщем, проще тогда вручную впечатывать данные в форму. |
|||
|
||||
| Zakonnic |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 3 Всего: 6 |
А, ну да. Я чего-то слышал про подделку этого имени, но это было давно и не правда.
Я же написал. Как вариант - через веб-сервис или HttpWebRequest. Если использовать веб-сервис, то приложение вызывает его метод, которому передает в качестве аргумента данные. Оно само запаковывается в xml и летит на сервер, который и пишет все в базу обычным способом. Если через класс HttpWebRequest, то приложение отсылает данные на обработчик (допустим, .ashx) на сервер:
Если честно, не понимаю, как оно у вас сейчас это делает :( Объясните, если не секрет. Это сообщение отредактировал(а) Zakonnic - 16.11.2007, 01:20 --------------------
...и никогда не пишите в комментариях правду |
||||
|
|||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
Законнику.
ОК, выкладываю часть работающего проекта. Его можно сразу поместить в wwwroot, создать Веб-сайт и использовать. Так же там прилагается код библиотеки и уже скомпилированная библиотека. Если вы сами попытаетесь скомпилировать - в проекте в файле настроек AssemblyInfo.cs выставьте
Пример выполняет элементарные действия: он создает выпадающий список всех существующих на компьютере RS-232 портов. Если пример не заработал - выставьте разрешения для зоны, в которой у вас работает ИЕксплоер, в Пуск-Настройка-Панель управления-Администрирование - Microsoft .NET Framework 2.0 Configuration - My Computer - Runtime Security Policy - Machine - Code groups - All_Code - там будут перечислены зоны, выберите свою и через свойства выставьте, например, Full Trust. Присоединённый файл ( Кол-во скачиваний: 5 )
LibraryExample.rar 5,19 Kb |
|||
|
||||
| Zakonnic |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 25.4.2006 Репутация: 3 Всего: 6 |
Спасибо! Я вживую с такими штуками не работал, так что это довольно интересно.
Посмотрел Несколько мыслей: - Проще написать AvailableRS232PortsDropDown=document.getElementById('<%=ddAvailableRS232Ports.ClientID %>'); - Как я понял, вы генерите HTML на джава, получая данные из объекта, а потом отсылаете через форму и метод POST. Собсно это меня и интересовало. - У меня все работает. И даже в настройки дотнет не лазил (хм...). Вероятно, пользователи у которых это не работает, просто не являются локальными администраторами, поэтому в реестре лазить не могут. В этом случае отдельное приложение действительно ничем не лучше. Happy End. Это сообщение отредактировал(а) Zakonnic - 19.11.2007, 12:36 --------------------
...и никогда не пишите в комментариях правду |
|||
|
||||
| Servena |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 24.7.2007 Где: Днепропетровск Репутация: 4 Всего: 14 |
ОК, это для таких задач, которые не может решить Джаваскрипт (например, у него нет возможности узнать названия всех последовательных портов и тем более с ними работать).
Спасибо, попробую - потому что до этого АйДи передавалось через скрытое поле, а до этого - специальной джаваскрипт-функцией искался реальный АйДи, сейчас наш старший программер подсказал через литерал, но теперь попробую так. Добавлено через 6 минут С классом закончено. Следующая проблема с расположением библиотеки. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |