Запись CD в XBAP - PullRequest
       5

Запись CD в XBAP

6 голосов
/ 02 сентября 2010

У меня есть XBAP, который должен иметь возможность записывать компакт-диски.При запуске из Visual Studio все работает нормально.Однако при запуске из браузера DLL IMAPI сообщает, что среда не поддерживается, как только она пытается получить доступ к диску.

Я предполагаю, что это сводится к разрешению.У меня есть подписанный сертификат, который я установил, и xbap настроен для работы в качестве приложения с полным доверием (хотя я предполагаю, что это не может быть, или у меня не будет этой проблемы).

В настоящее время все это выполняется на моем локальном компьютере, однако в конечном итоге я хочу, чтобы это было развернуто на веб-сервере (у всех пользователей уже будет установлен сертификат на их клиентах).

Есть ли у кого-нибудь какие-либо идеи относительно того, чтоЯ пропустил / сделал неправильно?

Обновление:

Я попытался создать новый тестовый сертификат, который я установил в своем хранилище сертификатов, а затем подписал XBAP против него, но этобез разницы.

Действительно могли бы сделать с некоторыми идеями, если у кого-то есть?

Дальнейшее обновление:

Я создал консольное приложение, которое может записывать компакт-диски.Оболочка для этого консольного приложения позволяет мне записывать компакт-диск из моего xbap, но не изнутри самого xbap.

Однако это действительно не то, что я хочу.В идеале я хочу, чтобы все это содержалось в xbap.Если это не удастся, есть ли способ включить консольное приложение в развертывание xbap одним щелчком мыши?

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 ноября 2010

Я считаю, что это невозможно сделать с XBAP.Согласно документации MS для XBAP ,

Примеры разрешений, недоступных в зоне Интернета:

  • FileIOPermission - Это разрешение контролирует возможность чтения и записи файлов на диск.Следовательно, приложения в зоне Интернета не могут читать файлы на жестком диске пользователя.

  • RegistryPermission - это разрешение контролирует возможность чтения / записи в реестр.Следовательно, приложения в зоне Интернета не могут осуществлять доступ или управлять состоянием в реестре пользователя.

  • SecurityPermission.UnmanagedCode - это разрешение контролирует возможность вызова собственных функций Win32.

Когда вы запускаете XBAP через Интернет, вы сталкиваетесь с проблемой № 3: пытаясь взаимодействовать с неуправляемым кодом.

Я бы порекомендовал развернуть вашприложение как автономное приложение с ClickOnce.Таким образом, вы можете иметь полный доступ к системе, но при этом получить простое развертывание и обновление, как и в случае с XBAP.


* edit *

Одна вещь, которую вы можете попробовать - и я не могу гарантировать, что она будет работать - но вы могли бы попросить своих пользователей зайти в IE Internet Options, добавить свой сайт в список доверенных сайтов.Держу пари, что ваш код записи компакт-дисков будет работать, потому что он будет находиться в доверенной зоне, а не в зоне Интернета.

0 голосов
/ 23 ноября 2010

Попробуйте перейти к

HKLM \ SOFTWARE \ Microsoft.NETFramework \ Windows Presentation Foundation \ Хостинг

в реестре

создать новый DWORD с именем RunUnrestricted со значением 1.

...