Condividi tramite


Esempio relativo alle tecnologie dei proxy personalizzati

Aggiornamento: novembre 2007

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.

Nota importante:

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 informazioni sull'utilizzo degli esempi, vedere i seguenti argomenti:

Download sample

Per compilare l'esempio utilizzando il prompt dei comandi

  1. Aprire una finestra del prompt dei comandi, quindi spostarsi nella sottodirectory CS.

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

    Nota:

    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 generato 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

Concetti

Estensione di RealProxy

Riferimenti

IChannel

IMessage

IRemotingTypeInfo

MarshalByRefObject

OneWayAttribute

RealProxy

System.Collections

System.Runtime.Remoting

System.Runtime.Remoting.Proxies

System.Runtime.Remoting.Messaging

UnmanagedType

Altre risorse

.NET Remoting avanzato

Attivazione e durate degli oggetti