Extensión para ASP.NET SignalR Backplane
NCache extiende el IDependencyResolver interfaz con su UseNCache
método que requiere solo el nombre de la caché y la clave de evento para el elemento agregado. Esto actúa como punto de registro para los clientes contra la implementación de SignalR.
Note
Esta característica también está disponible en NCache Professional.
UseNCache
toma los siguientes parámetros:
parámetros | Tipo de Propiedad | Descripción |
---|---|---|
cacheName |
string |
Nombre del caché en NCache que almacenará el elemento respectivo para que el cliente rastree las actualizaciones a través de itemVersion . |
eventKey |
string |
Atributo clave único especificado por el usuario para el elemento agregado a NCache en el registro del cliente. La clave del evento es específica de la aplicación. Cada cliente de la aplicación utilizará la misma clave de evento mientras llama NCachemétodo de extensión de . |
configuration |
NCacheScaleoutConfiguration |
Un objeto de NCacheScaleoutConfiguration que extiende el ScaleoutConfiguration clase y toma en cacheName , eventKey , userid y password como miembros |
Requisitos previos para NCache Extensión para ASP.NET SignalR Backplane
- Instale los siguientes paquetes de NuGet en su aplicación en función de su NCache Versión:
- Empresa: AspNet.SignalR.NCache
- Profesionales: AspNet.SignalR.NCache.Profesional
- Fuente abierta: AspNet.SignalR.NCache.Fuente abierta
- Para utilizar la extensión, incluya los siguientes espacios de nombres en su aplicación en Inicio.cs:
- Alachisoft.NCache.AspNet.SignalR
Microsoft.AspNet.SignalR
- El caché debe estar ejecutándose.
- Asegúrese de usar la versión >= 2.4.0 de ASP.NET SignalR.
- Para obtener detalles de la API, consulte: UsoNCache.
- Asegúrese de que los datos agregados sean serializable.
- Para garantizar que la operación sea a prueba de fallas, se recomienda manejar cualquier posible excepción dentro de su aplicación, como se explica en Manejo de fallas.
- Para manejar cualquier excepción no vista, consulte el Solucionando Problemas .
Modificar Web.config
Agregue la ConnectionOptions
sección en <configSections>
como sigue.
<configuration>
<configSections>
<section name="ConnectionOptions"
type="Alachisoft.NCache.AspNet.SignalR.SignalRConnectionOptions"/>
</configSections>
</configuration>
Agregue la ConnectionOptions
sección en <configuration>
para establecer diferentes propiedades que se utilizarán en el momento de la conexión del cliente con el caché. Para obtener una descripción detallada de los parámetros proporcionados en la ConnectionOptions
objeto, referirse a Propiedades de 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>
Añada appSettings
sección que especifica cacheName
y eventKey
in <configuration>
como sigue.
<appSettings>
<add key="cache" value="demoCache" />
<add key="eventKey" value="chatApplication" />
</appSettings>
Registrar clientes para usar NCache
Registrar una instancia de la UseNCache
método en Inicio.cs de su aplicación en cualquiera de las siguientes sobrecargas:
Sobrecarga 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();
}
}
Sobrecarga 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();
}
}
Recursos adicionales
NCache proporciona una aplicación de muestra para SignalR en GitHub.
Vea también
.NETO: Alachisoft.NCache.AspNet.SignalR espacio de nombres