Je travaille avec une application angulaire 5, que j'essaie de mettre en œuvre SignalR. Et j'obtiens 2 erreurs qui, j'imagine, sont la même chose. La première est :
Impossible de charger la ressource : le serveur a répondu avec le statut 404 (non trouvé).
et la seconde est :
ERROR Erreur : SignalR : Erreur de chargement des hubs. Assurez-vous que la référence de vos hubs est correcte, par exemple .
Cela dit, j'ai fait des recherches à ce sujet et j'ai vu quelques options qui faisaient principalement référence à une ancienne version de siganalR.
J'ai suivi le Tutoriel sur ce point et a ajouté un Hub
[HubName("EventContractHub")]
public class EventContractHub : Hub, IClientHub
{
public void SendId(int id)
{
Clients.All.Send(id);
}
}
avec un Startup.cs
classe qui ressemble à...
[assembly:OwinStartUp(typeof(blah.Startup))]
namespace blah
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
// Other configuration here
app.MapSignalR();
}
}
}
Et mon _Layout.cshtml
a une référence qui ressemble à :
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.3.min.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs"></script>
Quelqu'un sait-il pourquoi cela se produit en ce moment ?
L'url 404 not found est : http://localhost/IntelliM/signalr/hubs
Je dois mentionner que j'ai une api fonctionnant sur le même serveur en utilisant Owin également. Je ne sais pas si cela va changer quelque chose. Si c'est le cas, je peux poster la configuration pour cela aussi.
Veuillez comprendre que j'ai dû supprimer une partie du code ici, j'ai laissé le code pertinent :
public void Configuration(IAppBuilder app)
{
if (/*Logic for License*/)
{
app.Map("/identity", ssocf =>
{
});
}
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies"
});
app.UseOpenIdConnectAuthenticationPatched(new OpenIdConnectAuthenticationOptions
{
SignInAsAuthenticationType = "Cookies",
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthorizationCodeReceived = async n =>
{
/*
* Add Clams here
*/
},
SecurityTokenValidated = async n =>
{
/*Create Token Here*/
},
RedirectToIdentityProvider = n =>
{
}
}
});
//Setting WebAPI Auth
var config = new HttpConfiguration();
config.Formatters.Remove(config.Formatters.XmlFormatter);
//config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = authority
});
app.UseWebApi(config);
app.MapSignalR();
}
}