2010-09-02 8 views
6

Ich habe ein XBAP, das CDs brennen kann. Wenn alles in Visual Studio ausgeführt wird, funktioniert alles einwandfrei. Wenn die IMAPI-DLL jedoch über einen Browser ausgeführt wird, meldet sie, dass die Umgebung nicht unterstützt wird, sobald sie versucht, auf das Laufwerk zuzugreifen.CD Brennen in einem XBAP

Ich gehe davon aus, dass dies auf die Erlaubnis kommt. Ich habe ein signiertes Zertifikat, das ich installiert habe, und das xbap ist so eingestellt, dass es als eine voll vertrauenswürdige Anwendung ausgeführt wird (obwohl ich vermute, dass es nicht sein kann oder ich würde dieses Problem nicht haben).

Momentan läuft dies alles auf meinem lokalen Rechner, aber irgendwann möchte ich das auf einem Webserver bereitstellen (alle Benutzer haben das Zertifikat bereits auf ihren Clients installiert).

Hat jemand irgendwelche Ideen, was ich falsch gemacht habe?

Update:

Ich habe versucht, einen neuen, Prüfzertifikat zu schaffen, die ich in meinem Zertifikatspeicher installiert habe und unterzeichnete dann die XBAP dagegen, aber es macht keinen Unterschied.

Wirklich könnte mit einigen Ideen tun, wenn jemand irgendwelche hat?

Weitere Update:

Ich habe eine Konsolenanwendung erstellt, die fähig ist, CDs zu brennen. Wenn ich mich auf diese Konsolenanwendung verbringe, kann ich die CD von meinem xbap brennen, aber nicht von innerhalb des xbap.

Allerdings ist das wirklich nicht das, was ich will. Idealerweise möchte ich all das im xbap enthalten haben. Ist es nicht möglich, die Konsolenanwendung in die Bereitstellung mit einem Klick von xbap einzubinden?

Dank

Antwort

2

Ich glaube, dies mit XBAP zu tun ist nicht möglich. Nach MS documentation on XBAPs,

Beispiele für Berechtigungen nicht verfügbar in der Internetzone:

  • FileIOPermission - Diese Berechtigung steuert die Möglichkeit, Dateien auf der Festplatte zu lesen und zu schreiben. Folglich können Anwendungen in der Internetzone keine Dateien auf der Festplatte des Benutzers lesen.

  • RegistryPermission - Diese Berechtigung steuert die Fähigkeit zum Lesen/Schreiben in die Registrierung. Folglich können Anwendungen in der Internetzone nicht auf den Status in der Benutzerregistrierung zugreifen oder diesen steuern.

  • SecurityPermission.UnmanagedCode - Diese Berechtigung steuert die Möglichkeit, native Win32-Funktionen aufzurufen.

Wenn Sie Ihre XBAP über das Internet laufen, werden Sie Ausgabe # Hit 3: versuchen, mit nicht verwalteten Code Interop.

Ich würde empfehlen, Ihre App als eigenständige Anwendung mit ClickOnce bereitzustellen.Auf diese Weise können Sie vollen Zugriff auf das System erhalten, aber dennoch einfache Bereitstellungen und Upgrades wie bei XBAP erhalten.


* bearbeiten *

Eines könnte man versuchen - und ich kann es funktioniert nicht garantieren - aber Sie könnten die Benutzer gehen in IE Internetoptionen haben, fügen Sie Ihre Site zur Liste der vertrauenswürdigen Sites. Ich wette, dann wird Ihr CD-Brenncode funktionieren, da er in der vertrauenswürdigen Zone und nicht in der Internetzone liegt.

0

Versuchen

gehen

HKLM \ SOFTWARE \ Microsoft.NETFramework \ Windows Presentation Foundation \ Hosting

in der Registry

einen neuen DWORD-Namen erstellen RunUnrestricted mit dem Wert 1.