2012-05-01 4 views
5

Ho un'applicazione di modulo Windows legacy, che vorrei visualizzare sui browser degli utenti interni (IE8) come un'applicazione web. Un approccio che stavo guardando è quello di creare una libreria di Windows Form (dll) e per mostrare che nel browser. Ci sono molte pagine web che mi dicono come fare questo:È possibile visualizzare i controlli utente di Windows all'interno di IE8

Ma non riesco a farlo funzionare. Ho creato una semplice libreria di controllo di Windows e ho creato la DLL. Ho messo nella directory di livello superiore di un sito IIS 7.5, insieme a un file html come questo:

<html> 
    <body> 
    <object id='c' classid='http:TestWinCtrlLib.dll#TestWinCtrlLib.UserControl1' height='300' width='400'> 
    </object> 
    </body> 
</html> 

Il mio browser mostra una scatola di 300x400 con una piccola icona 'immagine' in alto a sinistra. All'inizio, IIS ha rifiutato di pubblicare il file .dll generando errori 403.2 e 401.2, ma ora ho impostato correttamente le proprietà di persecuzione IIS, i log indicano che è stato pubblicato correttamente.

2012-05-01 01:28:50 ::1 GET /form.html - 8008 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 200 0 0 1 
2012-05-01 01:28:50 ::1 GET /TestWinCtrlLib.dll - 8008 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 200 0 0 23 

Non riesco nemmeno a dire cosa non va. Il primo link sopra ha una sezione sulla segnalazione degli errori e ho aggiunto queste chiavi al registro, ma non vedo errori. Ho provato ad avviare iexplore da un prompt cmd, nel caso in cui gli errori potrebbero essere visualizzati sullo standard output, ma nulla.

Segnalazione errori

Il codice processo di download utilizza le seguenti due impostazioni del Registro di controllo segnalazione degli errori da eseguibili di codice gestito che vengono distribuite tramite Internet Explorer.

  • HKLM \ Software \ Microsoft.NETFramework \ ExposeExceptionsInCOM
  • HKCU \ Software \ Microsoft.NETFramework \ ExposeExceptionsInCOM

...

durante il debug di codice gestito che si distribuisce utilizzando Internet Explorer, è possibile utilizzare i valori di queste impostazioni per trovare informazioni dettagliate sugli errori di download del codice. Ad esempio, questo consente di visualizzare le informazioni di traccia dello stack quando vengono lanciate eccezioni, invece di fare affidamento sulla segnalazione degli errori fornita da Internet Explorer, che è stata progettata per gli utenti finali, non per gli sviluppatori.

È possibile che questa funzionalità non sia più supportata? La maggior parte dei riferimenti che ho trovato sembrano essere 2007-2010. Forse ClickOnce è l'unico modo per farlo ora. Posso farlo funzionare, ma il codice funziona in una sua finestra, non nel browser.

Ho provato a compilare la libreria utilizzando .Net framework 3.5 Profilo client e 4.0 Profilo client.Ma sembrano dare lo stesso risultato.

Qualsiasi aiuto benvenuto - grazie.

+1

Bisogna passare alla distribuzione ClickOnce se attaccate ad WinForms, ma questo è un modo per distribuire WinForms (e altri tipi di) applicazioni client, senza/al di fuori di IE. Altrimenti, è possibile migrare a Silverlight, che viene eseguito all'interno di IE. Se trovi qualcosa che viene raramente menzionato, ovviamente non è più qualcosa a cui dovresti attenersi, ad esempio eseguire l'app WinForms all'interno di IE. –

+0

Grazie Lex. Ho usato con successo ClickOnce per l'app WinForms. Sarebbe utile se potessi trovare una dichiarazione autorevole da parte di Microsoft che l'esecuzione di una libreria di moduli (non app) all'interno del browser non funziona più ... Sono d'accordo che ci sono modi migliori per farlo, ma in questo caso, non è il mio scelta :-). – John

+1

Microsoft non è bravo nell'annunciare che qualcosa da loro è morto (così come il mondo open source). Per i tecnici raramente citati probabilmente è possibile contattare l'assistenza Microsoft solo tramite http://support.microsoft.com dove possono eseguire più operazioni di debug e dirvi qual è la causa principale e come risolvere il problema. Richiede molto tempo e anche una risoluzione non è garantita. –

risposta

1

È possibile utilizzare invece Remote Desktop Services. Funziona su ActiveX, quindi è supportato solo Internet Explorer (sebbene ci siano soluzioni di terze parti che consentono di accedere a RDS su browser non IE o telefoni cellulari).

per le guide e documentazione vai a: http://technet.microsoft.com/en-us/library/dd647502(v=ws.10)

Problemi correlati