Estensione per ASP.NET SignalR Backplane
NCache estende l' IDdipendenzaResolver interfacciarsi con il suo UseNCache
metodo che richiede solo il nome della cache e la chiave evento per l'elemento aggiunto. Funziona come punto di registrazione per i client rispetto all'implementazione SignalR.
Note:
Questa funzionalità è disponibile anche in NCache Professional.
UseNCache
accetta i seguenti parametri:
parametri | Tipologia | Descrizione |
---|---|---|
cacheName |
string |
Nome della cache in NCache che memorizzerà il rispettivo elemento tramite il quale il client potrà tracciare gli aggiornamenti itemVersion . |
eventKey |
string |
Attributo chiave univoco specificato dall'utente per l'elemento aggiunto NCache sulla registrazione del cliente. La chiave evento è specifica dell'applicazione. Ogni client dell'applicazione utilizzerà la stessa chiave evento durante la chiamata NCachemetodo di estensione di. |
configuration |
NCacheScaleoutConfiguration |
Un oggetto di NCacheScaleoutConfiguration che estende il ScaleoutConfiguration classe e accoglie cacheName , eventKey , userid e password come membri. |
Prerequisiti per NCache Estensione per ASP.NET SignalR Backplane
- Installa i pacchetti NuGet seguenti nell'applicazione in base al tuo NCache Versione:
- Enterprise: AspNet.SignalR.NCache
- Saloni professionali: AspNet.SignalR.NCache.Professionale
- Fonte aperta: AspNet.SignalR.NCache.Open Source
- Per utilizzare l'estensione, includi i seguenti spazi dei nomi nella tua applicazione in Avvio.cs:
- Alachisoft.NCache.AspNet.SignalR
Microsoft.AspNet.SignalR
- La cache deve essere in esecuzione.
- Assicurati di utilizzare la versione >= 2.4.0 di ASP.NET SignalR.
- Per i dettagli dell'API, fare riferimento a: Usa il NCache.
- Assicurati che i dati aggiunti siano serializzabile.
- Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.
- Per gestire eventuali eccezioni invisibili, fare riferimento a Troubleshooting .
Modifica Web.config
Aggiungere il ConnectionOptions
sezione in <configSections>
come segue.
<configuration>
<configSections>
<section name="ConnectionOptions"
type="Alachisoft.NCache.AspNet.SignalR.SignalRConnectionOptions"/>
</configSections>
</configuration>
Aggiungere il ConnectionOptions
sezione in <configuration>
per impostare diverse proprietà da utilizzare al momento della connessione del client con la cache. Per una descrizione dettagliata dei parametri forniti nel ConnectionOptions
oggetto, fare riferimento Proprietà CacheConnectionOptions.
<configuration>
<ConnectionOptions ClientBindIp="" AppName="DemoAppName" EnableClientLogs="false" LogLevel="info">
<Server name="20.200.21.39" port="9800"/>
<UserCredentials userID="john doe" password="1234" />
</ConnectionOptions>
</configuration>
Aggiungi appSettings
sezione specificando cacheName
ed eventKey
in <configuration>
come segue.
<appSettings>
<add key="cache" value="demoCache" />
<add key="eventKey" value="chatApplication" />
</appSettings>
Registra i clienti da utilizzare NCache
Registra un'istanza di UseNCache
metodo in Avvio.cs dell'applicazione in uno dei seguenti overload:
Sovraccarico 1:
public static IDependencyResolver UseNCache(this IDependencyResolver resolver, string cacheName, string eventKey, string userID = null, string password = null)
public class Startup
{
public void Configuration(IAppBuilder app)
{
string cache, eventKey;
cache = ConfigurationManager.AppSettings["cache"];
eventKey = ConfigurationManager.AppSettings["eventKey"];
GlobalHost.DependencyResolver.UseNCache(cache, eventKey);
//using NCache SignalR
app.MapSignalR();
}
}
Sovraccarico 2:
public static IDependencyResolver UseNCache(this IDependencyResolver resolver, NCacheScaleoutConfiguration configuration)
public class Startup
{
public void Configuration(IAppBuilder app)
{
string cache, eventKey, userId ="", password="";
cache = ConfigurationManager.AppSettings["cache"];
eventKey = ConfigurationManager.AppSettings["eventKey"];
var options = (CacheConnectionOptions)ConfigurationManager.GetSection("ConnectionOptions");
if (options!= null && options.UserCredentials != null)
{
userId = options.UserCredentials.UserID;
password = options.UserCredentials.Password;
}
var configuration = new NCacheScaleoutConfiguration(cache, eventKey, userId, password);
GlobalHost.DependencyResolver.UseNCache(configuration); //using NCache SignalR
app.MapSignalR();
}
}
Risorse addizionali
NCache fornisce un'applicazione di esempio per SignalR attivo GitHub.
Vedere anche
.NETTO: Alachisoft.NCache.AspNet.SignalR spazio dei nomi.