Condividi tramite


Esempio relativo alle tecnologie dei proxy personalizzati

Questo argomento è specifico di una tecnologia legacy mantenuta per una questione di compatibilità con le applicazioni esistenti di versioni precedenti e non è consigliato per il nuovo sviluppo. Le applicazioni distribuite devono ora essere sviluppate utilizzando  Windows Communication Foundation (WCF).

In questo esempio viene illustrata l'estendibilità della classe RealProxy. Estendendo la classe RealProxy, il codice utente può accedere ai messaggi trasportati da e verso un qualsiasi oggetto remoto. L'esempio crea tre file eseguibili. L'applicazione ProxyWithReturnMessage.exe esegue l'override del metodo Invoke per visualizzare i dati del messaggio. L'applicazione ProxyWithCustomCasting.exe utilizza due interfacce, denominate IFaq e IBaz, per illustrare le funzionalità di cast personalizzate. L'applicazione ProxyWiredToHttpChannel.exe, infine, illustra come intercettare e inoltrare la chiamata al servizio RemotingHello mediante il canale Http.

hzzt6yfe.Important(it-it,VS.100).gif Nota:
Per questo esempio è necessario che nel computer sia installato Internet Information Services (IIS). Prima di eseguire le applicazioni dell'esempio, è necessario registrare il servizio RemotingHello con IIS.

Per compilare l'esempio utilizzando il prompt dei comandi

  1. Aprire una finestra del prompt dei comandi, quindi passare alla sottodirectory CS.

  2. Digitare msbuild CustomProxiesCS.sln dalla riga di comando.

    hzzt6yfe.note(it-it,VS.100).gifNota:
    L'esempio compila tre applicazioni console. Per visualizzare l'output delle applicazioni, è necessario avviarle ed eseguirle in una finestra del prompt dei comandi.

Per compilare l'esempio utilizzando Visual Studio

  1. Aprire Esplora risorse, quindi spostarsi nella sottodirectory CS.

  2. Fare doppio clic sull'icona relativa a CustomProxies.sln per aprire il file in Visual Studio.

  3. Scegliere Compila soluzione dal menu Compila.

Per registrare il servizio con IIS

  1. Compilare il servizio in una DLL, quindi copiare quest'ultima nella directory bin dalla quale verrà caricato il servizio. Se l'esempio viene compilato mediante il prompt dei comandi o Visual Studio, come descritto in precedenza, il servizio viene compilato, la sottodirectory bin viene creata in ProxyWiredToHttpChannel e il file Hello.dll viene copiato nella sottodirectory creata.

  2. Avviare Gestione servizi Internet, quindi selezionare Default Web Site nel nodo del server. Scegliere Action, New, Virtual Directory dal menu, quindi scegliere Next per continuare.

  3. Immettere RemotingHello come alias, quindi scegliere Next.

  4. Immettere la directory in cui si trova il servizio. Specificare il percorso completo, esclusa la directory bin in cui è stata copiata la DLL al passaggio 1.

  5. Scegliere Next. Accettare le impostazioni predefinite visualizzate e scegliere di nuovo Next, quindi fare clic su Finish. A questo punto il servizio risulterà registrato e verrà visualizzato nell'elenco dei siti Web predefiniti nella finestra di Gestione servizi Internet.

  6. Verificare che la directory in cui il servizio è stato registrato contenga il file web.config. Questo file include la descrizione del servizio e viene caricato automaticamente quando un client tenta di accedere al servizio mediante un browser, o un'altra applicazione client, utilizzando il canale HTTP sulla porta 80.

Per eseguire l’esempio

  1. Spostarsi nella directory contenente uno dei tre file eseguibili:

    • ProxyWiredToHttpChannel.exe

    • ProxyWithCustomCasting.exe

    • ProxyWithReturnMessage.exe.

    Ciascun eseguibile si trova nella sottodirectory \bin\Debug della directory con lo stesso nome dell'applicazione console.

  2. Digitare il nome del file eseguibile dalla riga di comando. Prima di eseguire ProxyWiredToHttpChannel.exe, verificare che il servizio RemotingHello sia registrato con IIS come descritto in precedenza.

Vedere anche

Riferimento

IChannel
IMessage
IRemotingTypeInfo
MarshalByRefObject
OneWayAttribute
RealProxy
System.Collections
System.Runtime.Remoting
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Messaging
UnmanagedType

Concetti

Estensione di RealProxy

Altre risorse

.NET Remoting avanzato
Attivazione e durate degli oggetti

Data di compilazione: 2010-02-13