| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка под ASP.NET > System.Security.Permissions.FileIOPermission,xbap |
| Автор: C4Grey 29.12.2007, 22:43 | ||
| Создал в VS2005 XAML BrowserApplication, в ней - загрузка 3ds файла при помощи dll вот отрывок:
RSmith.3DS - собственно, загружаемый файл, при компиляции все нормально запускается, файл загружается. Запускаю просто xbap файл: System.Security.SecurityException: Сбой при запросе разрешения типа "System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089". Ошибкой завершилось следующее действие: Demand Ошибкой завершилось первое разрешение следующего типа: System.Security.Permissions.FileIOPermission Ошибкой завершилось первым следующее разрешение: <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="C:\WINDOWS\system32\RSmith.3ds"/> Почему файл помещается в папку WINDOWS я так и не понял но ладно...порыл хелпы, увидел где-то топик о правах...установил в свойствах проекта Security при помощи Enable ClickOnce Security Settings "This is a full trusted application" - все равно тот же Exception... Да и если выставить права на full trusted то при загрузке с Интернета а не локально оно скажет что: + Пользователь отказался предоставить требуемые права приложению. Вот так вот играюсь 4 дня.... Помогите пожалуйста...в то моск кипит... |
| Автор: Mymik 30.12.2007, 00:32 | ||
| Попробуй преобразовывать релятивный путь в абсолютный путь... используй Server.MapPath() функцию. и "RSmith.3DS" замени на "~/RSmith.3DS" Добавлено через 2 минуты и 29 секунд Я ж правильно понял, что
принимает путь к файлу ??? А ты передаешь имя файла... asp.net же ж запускается совсем в другом месте (не там где твой сайт) Добавлено через 3 минуты и 45 секунд Да, еще |
| Автор: C4Grey 30.12.2007, 18:00 | ||
Server.MapPath(); в XBAP не работает...как альтернатива - Uri...
но тогда: Данный формат пути не поддерживается. Ошибка в строке: _mainModel3DGroup = _mainReader3ds.ReadFile(s); P.S.Ошибка в этом.Яснослышанье удается) |
| Автор: Mymik 30.12.2007, 22:11 | ||
А если попробовать как пишут вот тут вот-->> http://www.wpf-graphics.com/help/html/M_Ab3d_Reader3ds_ReadFile_2.htm
|
| Автор: Servena 3.1.2008, 12:47 | ||
О, люблю эту тему с разрешениями. У тебя у сборки нет разрешения на выполнение операции с файлами. Поскольку у тебя Студия установлена, то в Пуск-Настройка-Панель управления-Администрирование должна быть программа Microsoft .NET Framework 2.0 Configuration. Она настраивает разрешения безопасности (не только она, но это более удобная с графическим интерфейсом). Следующий шаг - это понять в какой Зоне (бывают Локальная, Интернет, Мой компьютер, Доверяемая и Ограниченная) работает твоя библиотека. У меня мною созданные библиотеки встраивались в HTML-страницу и в браузере внизу справа всегда было написано название зоны. Дальше, самый простой вариант но небезопасный вариант в плане хакеров(если он пройдет, дальше можно будет тонко настроить): Запусти Microsoft .NET Framework 2.0 Configuration, разкрой плюсики до слова Machine (уровень компьютера), зайди в Code_Groups->All_Code: ты увидишь все зоны. Теперь нужно выбрать нужную, но так как я не знаю какая - посоветую для начала во всех этих зонах выставить FullTrust. Для этого - нажимаешь на зоне прав. кн. миши - выбираешь свойства, переходишь на вкладку Permission Set и там в выпадающем списке выставляешь FullTrust, потом применить. После этого твое приложение на твоем компьютере должно работать. Если получится, к безопасной настройке и настойке для работы с других компьютеров можно перейти в следующий раз. |
| Автор: C4Grey 5.1.2008, 01:11 |
| Mymik, Servena, большое спасибо. 2Mymik - именно так все и работает, спасибо...действительно уж rtfm и будет щастье) |
| Автор: Rust_VB 30.1.2008, 09:31 |
| Servena, спасибо за твое описание помогло, но только для моего ПК. Но ты обещался написать как это сделать для других ПК. У меня необходимость выложить программу в сети, неужели такие настройки надо делать на каждом ПК, если да то как это можно сделать скопом на все машины? Спасибо. |