47 messaggi dal 15 settembre 2003
Salve ragazzi,

qualcuno di voi mi può indicare qualche esempio di visualizzatore multipage tiff per asp.net.

Grazie mille



Marco
mdenicola wrote:
qualcuno di voi mi può indicare qualche esempio di visualizzatore multipage tiff per asp.net.

non ho mai visto niente di simile e comunque sarebbero di sicuro ActiveX o applet Java (se ne esistono ancora  ), a meno che non vuoi usare GDI+ per prendere i TIFF e convertirli al volo in JPEG, cosa che resta possibilissima.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
47 messaggi dal 15 settembre 2003
Immagino...

infatti ho realizzato un activeX in C#. Ho creato il file cab.

Il bello che se lancio la pagina html con l'activex in locale funziona tutto perfettamente.
Se lancio la pagina da web server (IIS per intenderci) mi visualizza un messaggio del tipo Il server di automazione non può creare l'oggetto.

Cosa devo fare per farlo funzionare?

Marco
mdenicola wrote:
Se lancio la pagina da web server (IIS per intenderci) mi visualizza un messaggio del tipo *Il server di automazione non può creare l'oggetto*.

Cosa devo fare per farlo funzionare?

attaccare un debugger e vedere cosa succede.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
47 messaggi dal 15 settembre 2003
Il debugger non mi dice nulla. solo che l'oggetto referenzato in javascript è nullo.
Per farmi capiere meglio ti posto il codice che ho trovato in giro per la rete.

la classe è:

using System;
using System.Text;
using System.Windows.Forms;
using System.Collections.Generic;
using System.Runtime.InteropServices;
namespace DownloadedApp
{
[Guid("D1E40FCE-E964-4dfd-B07E-BDE49D3519A1")]
interface IDownload
{
void InvokeMethod();
}
///
/// COM exposed .Net class.
///
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("A47C22B1-3CC3-45bc-801E-3FCC4FFD3E45")]
public class Download : IDownload
{
///
/// COM exposed .Net Method.
///
public void InvokeMethod()
{
MessageBox.Show("Clientside component invoked sucessfully!!", "Clientside component", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}

la compilo attraverso vs2005.

la pgina html che richiama l'activex è:

<html>
<head>
<script LANGUAGE="JavaScript1.2">
function Scrape( )
{
var objDownload = new ActiveXObject( "DownloadedApp.Download" );

try
{
objDownload.InvokeMethod( );
}
catch(exception) {
alert( "Failed" );
}
}
</script>
</head>
<body>
<table align="center">
<td>
<a href="javascript:Scrape( )">Invoke Component</a>
</td>
</table>
<p>Please Wait...Downloading components...</p>
<object name="secondobj" style='display:none' id='TestActivex' classid='CLSID:A47C22B1-3CC3-45bc-801E-3FCC4FFD3E45' codebase='DownloadDeployer.cab#version=1,0,0,0'></object>
</body>
</html>

ho seguito le indicazioni dell'articolo ma mi continua a darmi sempre lo stesso errore!!!!

Ho visto anche altri articoli simili, si presenta sempre lo stesso errore!!


mdenicola wrote:
la compilo attraverso vs2005.

e devi anche metterla in GAC usando gacutil e registrarla con regasm (o usando un setup che faccia entrambe le cose).
altrimenti non è praticamente possibile che venga visto come oggetto COM, che a differenza degli assembly del .NET Framework vanno registrati.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
176 messaggi dal 04 giugno 2007
Contributi | Blog
Non è così semplice, purtroppo.

Un controllo ActiveX non viene eseguito nella Internet Zone del browser a meno che non sia firmato da un trusted publisher o non sia marcato come Safe For Scripting. Uno hack potrebbe essere assicurarsi che tutti i client che devono usare il tuo sito lo abbiano tra i trusted sites. In questo caso nella peggiore delle ipotesi ti beccheresti un prompt.

Marcare un controllo come Safe se hai intenzione di usarlo in una rete outward-facing è equivalente a andare in giro con un bersaglio dipinto sulla schiena in un poligono di tiro - Devi fare un controllo di sicurezza veramente serio e del security testing che come minimo copra il fuzzing di qualunque input.
Ricorda che se qualcosa va storto in un ActiveX stai dando a qualcuno il privilegio dell'utente sotto cui sta girando il processo del browser (che se non sei su Vista è di solito un local admin della macchina).

Due possibili soluzioni per il tuo problema:

1) un controllo managed per Explorer (poco diffusi, poco conosciuti, me esistono...). Se cerchi su MSDN dovresti trovare come farne uno. Usa questa soluzione solo se tutti i tuoi client hanno gia il .NET framework installato.

2) un'applicazione con Silverlight 2.0. Riusa il tuo codice in un controllo in Silverlight che parla con il resto della pagina. Mi sembra la soluzione più elegante e quella che esplorerei se fossi al tuo posto.

Un'ultima cosa - se scrivi ActiveX o COM components in managed code per estendere applicazioni native, leggiti il mio blog post sui runtime in un processo. Pensarci ora ti risparmierà un sacco di grattacapi quando esce un nuovo CLR.

HTH

--Alessandro
47 messaggi dal 15 settembre 2003
Ok, ho capito.

Mi hai convinto...cerchero un'altra strada.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.