Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
door Patrick Fletcher
Waarschuwing
Deze documentatie is niet voor de nieuwste versie van SignalR. Bekijk ASP.NET Core SignalR.
In dit document worden veelvoorkomende problemen met SignalR beschreven.
Softwareversies die in dit onderwerp worden gebruikt
- Visual Studio 2013
- .NET 4.5
- SignalR versie 2
Vorige versies van dit onderwerp
Zie SignalR Oudere versies voor meer informatie over eerdere versies van SignalR.
Vragen en opmerkingen
Geef feedback over hoe u deze zelfstudie leuk vond en wat we konden verbeteren in de opmerkingen onder aan de pagina. Als u vragen hebt die niet rechtstreeks zijn gerelateerd aan de zelfstudie, kunt u deze posten op het ASP.NET SignalR-forum of StackOverflow.com.
Dit document bevat de volgende secties.
- Aanroepen van methoden tussen de client en de server op de achtergrond mislukt
- IIS-websockets configureren voor ping/pong om een dode client te detecteren
- Andere verbindingsproblemen
- Compilatie- en serverfouten
- Problemen met Visual Studio
- Problemen met Internet Information Services
- Problemen met Microsoft Azure
Aanroepen van methoden tussen de client en de server mislukt onopgemerkt
In deze sectie worden mogelijke oorzaken beschreven voor het falen van een methode-aanroep tussen client en server zonder het genereren van een betekenisvol foutbericht. In een SignalR-toepassing heeft de server geen informatie over de methoden die de client implementeert; wanneer de server een clientmethode aanroept, worden de methodenaam en parametergegevens naar de client verzonden en wordt de methode alleen uitgevoerd als deze bestaat in de indeling die de opgegeven server heeft. Als er geen overeenkomende methode op de client wordt gevonden, gebeurt er niets en wordt er geen foutbericht weergegeven op de server.
Als u de clientmethoden die niet worden aangeroepen verder wilt onderzoeken, kunt u logboekregistratie inschakelen voordat u de startmethode op de hub aanroept om te zien welke aanroepen afkomstig zijn van de server. Zie Logboekregistratie aan de clientzijde inschakelen (JavaScript-clientversie) om logboekregistratie in te schakelen in een JavaScript-toepassing. Als u logboekregistratie in een .NET-clienttoepassing wilt inschakelen, raadpleegt u Logboekregistratie aan de clientzijde inschakelen (.NET-clientversie).
Verkeerd gespelde methode, onjuiste methodehandtekening of onjuiste hubnaam
Als de naam of handtekening van een aangeroepen methode niet exact overeenkomt met een geschikte methode op de client, mislukt de aanroep. Controleer of de naam van de methode die door de server wordt aangeroepen, overeenkomt met de naam van de methode op de client. SignalR maakt ook de hubproxy aan met behulp van camel-cased methoden, zoals gebruikelijk is in JavaScript. Een methode SendMessage op de server zou in de clientproxy sendMessage worden genoemd. Als u het HubName kenmerk in de code aan de serverzijde gebruikt, controleert u of de gebruikte naam overeenkomt met de naam die is gebruikt om de hub op de client te maken. Als u het HubName kenmerk niet gebruikt, controleert u of de naam van de hub in een JavaScript-cliënt in camelCase is, zoals chatHub in plaats van ChatHub.
Dubbele methodenaam op client
Controleer of u geen dubbele methode op de client hebt die alleen per geval verschilt. Als uw clienttoepassing een methode heeft genaamd sendMessage, controleert u of er niet ook een methode genaamd SendMessage bestaat.
Ontbrekende JSON-parser op de client
SignalR vereist dat er een JSON-parser aanwezig is om aanroepen tussen de server en de client te serialiseren. Als uw client geen ingebouwde JSON-parser (zoals Internet Explorer 7) heeft, moet u er een opnemen in uw toepassing. U kunt hier de JSON-parser downloaden.
Syntaxis van hub en persistentconnection combineren
SignalR maakt gebruik van twee communicatiemodellen: Hubs en PersistentConnections. De syntaxis voor het aanroepen van deze twee communicatiemodellen verschilt in de clientcode. Als u een hub in uw servercode hebt toegevoegd, controleert u of al uw clientcode de juiste hubsyntaxis gebruikt.
JavaScript-clientcode waarmee een PersistentConnection in een JavaScript-client wordt gemaakt
var myConnection = $.connection('/echo');
JavaScript-clientcode waarmee een hubproxy wordt gemaakt in een Javascript-client
var myHub = $.connection.MyHub;
C#-servercode waarmee een route wordt toegewezen aan een PersistentConnection
RouteTable.Routes.MapConnection<MyConnection>("my", "/echo");
C#-servercode waarmee een route wordt toegewezen aan een hub of aan meerdere hubs als u meerdere toepassingen hebt
App.MapSignalR();
Verbinding gestart voordat abonnementen worden toegevoegd
Als de verbinding van de hub wordt gestart voordat methoden die vanaf de server kunnen worden aangeroepen, worden toegevoegd aan de proxy, worden er geen berichten ontvangen. Met de volgende JavaScript-code wordt de hub niet goed gestart:
Onjuiste JavaScript-clientcode die niet toestaat dat Hubs-berichten worden ontvangen
var chat = $.connection.chatHub;
$.connection.hub.start().done(function () {
chat.client.broadcastMessage = function (name, message) {...};
});
Voeg in plaats daarvan de methodeabonnementen toe voordat u Start aanroept:
JavaScript-clientcode waarmee abonnementen correct worden toegevoegd aan een hub
var chat = $.connection.chatHub;
chat.client.broadcastMessage = function (name, message) {...};
$.connection.hub.start().done(function () {
...
});
Ontbrekende methodenaam in de hubproxy
Controleer of de methode die op de server is gedefinieerd, wordt door de client geabonneerd. Hoewel de server de methode definieert, moet deze nog steeds worden toegevoegd aan de clientproxy. Methoden kunnen op de volgende manieren aan de clientproxy worden toegevoegd (houd er rekening mee dat de methode wordt toegevoegd aan het client lid van de hub, niet rechtstreeks aan de hub):
JavaScript-clientcode waarmee methoden worden toegevoegd aan een hubproxy
// Method added to proxy in JavaScript:
myHubProxy.server.method1 = function (param1, param2) {...};
//Multiple methods added to proxy in JavaScript using jQuery:
$.extend(myHubProxy.server, {
method1: function (param1, param2) {...},
method2: function (param3, param4) {...}
});
Hub- of hubmethoden die niet zijn gedeclareerd als openbaar
Als u zichtbaar wilt zijn op de client, moeten de hub-implementatie en -methoden worden gedeclareerd als public.
Toegang tot hub vanuit een andere toepassing
SignalR Hubs kan alleen worden geopend via toepassingen die SignalR-clients implementeren. SignalR kan niet samenwerken met andere communicatiebibliotheken (zoals SOAP- of WCF-webservices.) Als er geen SignalR-client beschikbaar is voor uw doelplatform, hebt u rechtstreeks geen toegang tot het eindpunt van de server.
Gegevens handmatig serialiseren
SignalR gebruikt automatisch JSON om uw methodeparameters te serialiseren. U hoeft dit zelf niet te doen.
Methode Remote Hub niet uitgevoerd op client in de functie OnDisconnected
Dit gedrag is opzettelijk ontworpen. Wanneer OnDisconnected wordt aangeroepen, is de hub al in de Disconnected-status, waardoor er geen verdere hubmethoden kunnen worden aangeroepen.
C#-servercode waarmee code correct wordt uitgevoerd in de gebeurtenis OnDisconnected
public class MyHub : Hub
{
public override Task OnDisconnected()
{
// Do what you want here
return base.OnDisconnected();
}
}
OnDisconnect wordt niet geactiveerd op consistente tijden
Dit gedrag is opzettelijk ontworpen. Wanneer een gebruiker probeert weg te navigeren van een pagina met een actieve SignalR-verbinding, zal de SignalR-client vervolgens proberen de server op de hoogte te stellen dat de clientverbinding wordt gestopt. Als de beste poging van de SignalR-client de server niet heeft bereikt, zal de server de verbinding beëindigen na een instelbare DisconnectTimeout, waarna het OnDisconnected-evenement zal worden afgevuurd. Als de best effortpoging van de SignalR-client is geslaagd, wordt de OnDisconnected gebeurtenis onmiddellijk geactiveerd.
Zie voor meer informatie over het instellen van de DisconnectTimeout instelling, gebeurtenissen voor de levensduur van de verbinding: DisconnectTimeout.
Verbindingslimiet bereikt
Wanneer u de volledige versie van IIS op een clientbesturingssysteem zoals Windows 7 gebruikt, wordt er een limiet van 10 verbindingen opgelegd. Wanneer u een clientbesturingssysteem gebruikt, gebruikt u IN plaats daarvan IIS Express om deze limiet te voorkomen.
Verbinding tussen domeinen is niet juist ingesteld
Als een verbinding tussen domeinen (een verbinding waarvoor de SignalR-URL zich niet in hetzelfde domein bevindt als de hostingpagina) niet juist is ingesteld, mislukt de verbinding mogelijk zonder een foutbericht. Zie Hoe u een verbinding tussen domeinen tot stand brengt voor meer informatie over het inschakelen van communicatie tussen domeinen.
Verbinding met NTLM (Active Directory) werkt niet in .NET-client
Een verbinding in een .NET-clienttoepassing die gebruikmaakt van domeinbeveiliging kan mislukken als de verbinding niet juist is geconfigureerd. Als u SignalR in een domeinomgeving wilt gebruiken, stelt u de vereiste verbindingseigenschap als volgt in:
C#-clientcode waarmee verbindingsreferenties worden geïmplementeerd
connection.Credentials = CredentialCache.DefaultCredentials;
IIS-websockets configureren voor ping/pong om een dode client te detecteren
SignalR-servers weten niet of de client al dan niet dood is en ze vertrouwen op meldingen van de onderliggende websocket voor verbindingsfouten, dat wil zeggen de OnClose callback. Een oplossing voor dit probleem is het configureren van IIS-websockets om de ping/pong voor u uit te voeren. Dit zorgt ervoor dat de verbinding wordt gesloten als deze onverwacht wordt verbroken. Zie dit stackoverflow-bericht voor meer informatie.
Andere verbindingsproblemen
In deze sectie worden de oorzaken en oplossingen beschreven voor specifieke symptomen of foutberichten die optreden tijdens een verbinding.
Fout 'Begin moet worden aangeroepen voordat gegevens kunnen worden verzonden'
Deze fout wordt vaak weergegeven als code verwijst naar SignalR-objecten voordat de verbinding wordt gestart. De configuratie voor handlers en dergelijke die methoden zullen aanroepen die op de server zijn gedefinieerd, moet worden toegevoegd nadat de verbinding is voltooid. Houd er rekening mee dat de aanroep Start asynchroon is, dus code na de aanroep kan worden uitgevoerd voordat deze is voltooid. De beste manier om handlers toe te voegen nadat een verbinding volledig is gestart, is door ze in een callback-functie te plaatsen die als parameter wordt doorgegeven aan de startmethode:
JavaScript-clientcode waarmee gebeurtenis-handlers correct worden toegevoegd die verwijzen naar SignalR-objecten
$.connection.hub.start().done(function () {
// Wire up Send button to call NewContosoChatMessage on the server.
$('#newContosoChatMessage').click(function () {
contosoChatHubProxy.server.newContosoChatMessage(
$('#displayname').val(), $('#message').val());
$('#message').val('').focus();
});
Deze fout wordt ook weergegeven als een verbinding stopt terwijl er nog steeds naar SignalR-objecten wordt verwezen.
Fout '301 Definitief verplaatst' of '302 tijdelijk verplaatst'
Deze fout kan worden weergegeven als het project een map met de naam SignalR bevat, waardoor de automatisch gemaakte proxy wordt verstoord. Als u deze fout wilt voorkomen, gebruikt u geen map die in uw toepassing wordt aangeroepen SignalR of schakelt u het automatisch genereren van proxy's uit. Zie de gegenereerde proxy en wat deze voor u doet voor meer informatie.
Foutmelding '403 Verboden' in .NET- of Silverlight-client
Deze fout kan optreden in omgevingen tussen domeinen waarbij communicatie tussen domeinen niet juist is ingeschakeld. Zie Hoe u een verbinding tussen domeinen tot stand brengt voor meer informatie over het inschakelen van communicatie tussen domeinen. Als u een verbinding tussen domeinen in een Silverlight-client tot stand wilt brengen, raadpleegt u Verbindingen tussen domeinen van Silverlight-clients.
Fout '404 Niet gevonden'
Er zijn verschillende oorzaken voor dit probleem. Controleer het volgende:
Verwijzing naar het hubproxyadres niet correct geformatteerd: Deze fout wordt vaak gezien wanneer de verwijzing naar het gegenereerde hubproxyadres niet correct is geformatteerd. Controleer of de verwijzing naar het hubadres juist is gemaakt. Zie Hoe u verwijst naar de dynamisch gegenereerde proxy voor meer informatie.
Routes toevoegen aan de toepassing voordat u de hubroute toevoegt: Als uw toepassing andere routes gebruikt, controleert u of de eerste toegevoegde route de aanroep naar
MapSignalRis.IIS 7 of 7.5 gebruiken zonder de update voor extensieloze URL's: Voor het gebruik van IIS 7 of 7.5 is een update vereist voor extensieloze URL's, zodat de server toegang kan bieden tot de hubdefinities op
/signalr/hubs. De update vindt u hier.IIS-cache verouderd of beschadigd: Als u wilt controleren of de cache-inhoud niet verouderd is, voert u de volgende opdracht in een PowerShell-venster in om de cache te wissen:
net stop w3svc Remove-Item -Path "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\*" -Force -Recurse net start w3svc
500 Interne serverfout
Dit is een zeer algemene fout die een grote verscheidenheid aan oorzaken kan hebben. De details van de fout moeten worden weergegeven in het gebeurtenislogboek van de server of kunnen worden gevonden via foutopsporing van de server. Meer gedetailleerde foutinformatie kan worden verkregen door gedetailleerde foutmelding op de server in te schakelen. Zie Fouten afhandelen in de Hub-klasse voor meer informatie.
Deze fout wordt ook vaak weergegeven als een firewall of proxy niet juist is geconfigureerd, waardoor de aanvraagheaders opnieuw worden geschreven. De oplossing is ervoor te zorgen dat poort 80 is ingeschakeld op de firewall of proxy.
"Onverwachte antwoordcode: 500"
Deze fout kan optreden als de versie van .NET Framework die in de toepassing wordt gebruikt, niet overeenkomt met de versie die is opgegeven in Web.Config. De oplossing is om te controleren of .NET 4.5 wordt gebruikt in zowel de toepassingsinstellingen als het Web.Config-bestand.
Foutmelding "TypeError: <hubType> is undefined"
Deze fout treedt op als de aanroep naar MapSignalR niet juist wordt uitgevoerd. Zie SignalR Middleware registreren en SignalR-opties configureren voor meer informatie.
JsonSerializationException is niet verwerkt door gebruikerscode
Controleer of de parameters die u naar uw methoden verzendt, geen niet-serialiseerbare typen bevatten (zoals bestandsingangen of databaseverbindingen). Als u leden wilt gebruiken voor een object aan de serverzijde dat u niet naar de client wilt verzenden (voor beveiliging of om redenen van serialisatie), gebruikt u het JSONIgnore kenmerk.
Protocolfout: Onbekende transportfout
Deze fout kan optreden als de client geen ondersteuning biedt voor de transporten die SignalR gebruikt. Zie Transports en Fallbacks voor informatie over welke browsers kunnen worden gebruikt met SignalR.
'Het genereren van de JavaScript Hub-proxy is uitgeschakeld'.
Deze fout treedt op als DisableJavaScriptProxies is ingesteld terwijl er ook een verwijzing naar de dynamisch gegenereerde proxy op signalr/hubs is opgenomen. Zie de gegenereerde proxy en wat deze voor u doet voor meer informatie over het handmatig maken van de proxy.
'De verbindings-id heeft de onjuiste indeling' of 'De gebruikersidentiteit kan niet worden gewijzigd tijdens een actieve SignalR-verbinding'
Deze fout kan worden weergegeven als verificatie wordt gebruikt en de client wordt afgemeld voordat de verbinding wordt gestopt. De oplossing is om de SignalR-verbinding te stoppen voordat u de client afmeldt.
"Ondeugende fout: SignalR: jQuery niet gevonden. Controleer of er naar jQuery wordt verwezen vóór het SignalR.js-bestand in de foutmelding.
Voor de SignalR JavaScript-client moet jQuery worden uitgevoerd. Controleer of uw verwijzing naar jQuery juist is, of het gebruikte pad geldig is en of de verwijzing naar jQuery vóór de verwijzing naar SignalR ligt.
"Uncaught TypeError: Kan eigenschap '<property>' van een niet-gedefinieerd object niet lezen"
Deze fout treedt op omdat er niet naar jQuery of de hubsproxy wordt verwezen. Controleer of uw verwijzing naar jQuery en de hubsproxy juist is, of het gebruikte pad geldig is en of de verwijzing naar jQuery vóór de verwijzing naar de hubs-proxy valt. De standaardreferentie naar de hubs-proxy moet er als volgt uitzien:
HTML-code aan de clientzijde die correct verwijst naar de Hubs-proxy
<script src="/signalr/hubs"></script>
Fout is niet verwerkt door gebruikerscode: RuntimeBinderException
Deze fout kan optreden wanneer de onjuiste overbelasting van Hub.On wordt gebruikt. Als de methode een retourwaarde heeft, moet het retourtype worden opgegeven als een algemene typeparameter:
Methode gedefinieerd op de client (zonder gegenereerde proxy)
MyHub.On<ReturnType>("MethodName", LocalMethod);
Verbindings-ID is inconsistent ofwel verbinding onderbreekt tussen het laden van pagina's.
Dit gedrag is opzettelijk ontworpen. Omdat het hubobject wordt gehost in het paginaobject, wordt de hub vernietigd wanneer de pagina wordt vernieuwd. Een toepassing met meerdere pagina's moet de koppeling tussen gebruikers en verbindings-id's onderhouden, zodat deze consistent zijn tussen het laden van pagina's. De verbindings-id's kunnen worden opgeslagen op de server in een ConcurrentDictionary object of een database.
Fout 'Waarde mag niet null zijn'
Methoden aan de serverzijde met optionele parameters worden momenteel niet ondersteund; als de optionele parameter wordt weggelaten, mislukt de methode. Zie Optionele parameters voor meer informatie.
Fout 'Firefox kan geen verbinding maken met de server op <adres>' in Firebug
Dit foutbericht kan worden weergegeven in Firebug als de onderhandeling van het WebSocket-transport mislukt en er in plaats daarvan een ander transport wordt gebruikt. Dit gedrag is opzettelijk ontworpen.
Fout 'Het externe certificaat is ongeldig volgens de validatieprocedure' in de .NET-clienttoepassing
Als voor uw server aangepaste clientcertificaten zijn vereist, kunt u een x509-certificaat toevoegen aan de verbinding voordat de aanvraag wordt ingediend. Voeg het certificaat toe aan de verbinding met behulp van Connection.AddClientCertificate.
Verbindingsuitval na verlopen van verificatie
Dit gedrag is opzettelijk ontworpen. Verificatiereferenties kunnen niet worden gewijzigd terwijl een verbinding actief is; om referenties te vernieuwen, moet de verbinding worden gestopt en opnieuw worden gestart.
OnConnected wordt twee keer gebeld wanneer u jQuery Mobile gebruikt
Met de functie van jQuery Mobile initializePage worden de scripts op elke pagina opnieuw uitgevoerd, waardoor er een tweede verbinding wordt gemaakt. Oplossingen voor dit probleem zijn:
- Neem de verwijzing naar jQuery Mobile op vóór uw JavaScript-bestand.
- Schakel de
initializePage-functie uit door$.mobile.autoInitializePage = falsein te stellen. - Wacht totdat de pagina is geïnitialiseerd voordat u de verbinding start.
In Silverlight-toepassingen worden berichten vertraagd met server-sent events
Berichten worden vertraagd bij het gebruik van door de server verzonden gebeurtenissen op Silverlight. Om af te dwingen dat long polling wordt gebruikt, gebruik dan het volgende bij het starten van de verbinding:
connection.Start(new LongPollingTransport());
'Machtiging geweigerd' met het Forever Frame-protocol
Dit is een bekend probleem, dat hier wordt beschreven. Dit symptoom kan worden gezien met behulp van de nieuwste JQuery-bibliotheek; de tijdelijke oplossing is om uw toepassing te downgraden naar JQuery 1.8.2.
"InvalidOperationException: Geen geldige websocketaanvraag.
Deze fout kan optreden als het WebSocket-protocol wordt gebruikt, maar de netwerkproxy de aanvraagheaders wijzigt. De oplossing is het configureren van de proxy om WebSocket toe te staan op poort 80.
'Uitzondering: <methodenaam> kon niet worden opgelost' wanneer de client een methode op de server aanroept.
Deze fout kan voortkomen uit het gebruik van gegevenstypen die niet kunnen worden herkend in een JSON-payload, zoals Array. De tijdelijke oplossing is het gebruik van een gegevenstype dat kan worden gedetecteerd door JSON, zoals IList. Zie .NET Client kan hubmethoden met matrixparameters niet aanroepen voor meer informatie.
Compilatie- en serverfouten
De volgende sectie bevat mogelijke oplossingen voor compiler- en runtimefouten aan de serverzijde.
Verwijzing naar Hub-instantie is null
Omdat er voor elke verbinding een hub-exemplaar wordt gemaakt, kunt u zelf geen exemplaar van een hub maken in uw code. Als u methoden wilt aanroepen op een hub van buiten de hub zelf, raadpleegt u Clientmethoden aanroepen en groepen beheren van buiten de Hub-klasse voor het verkrijgen van een verwijzing naar de hubcontext.
HTTPContext.Current.Session is null
Dit gedrag is opzettelijk ontworpen. SignalR biedt geen ondersteuning voor de ASP.NET sessiestatus, omdat het inschakelen van de sessiestatus dubbelzijdige berichten zou verbreken.
Geen geschikte methode om te overriden
Deze fout kan optreden als u code van oudere documentatie of blogs gebruikt. Controleer of u niet verwijst naar namen van methoden die zijn gewijzigd of afgeschaft (zoals OnConnectedAsync).
HostContextExtensions.WebSocketServerUrl is null
Dit gedrag is opzettelijk ontworpen. Dit lid is afgeschaft en mag niet worden gebruikt.
Fout 'Er is al een route met de naam signalr.hubs' in de routeverzameling
Deze fout wordt weergegeven wanneer uw toepassing MapSignalR twee keer aanroept. Sommige voorbeeldtoepassingen roepen MapSignalR rechtstreeks in de opstartklasse aan; anderen voeren de aanroep uit in een wrapperklasse. Zorg ervoor dat uw toepassing niet beide doet.
WebSocket wordt niet gebruikt
Als u hebt gecontroleerd of uw server en clients voldoen aan de vereisten voor WebSocket (vermeld in het document Ondersteunde platforms ), moet u WebSocket op uw server inschakelen. Hier vindt u instructies om dit te doen.
$.connection is niet gedefinieerd
Deze fout geeft aan dat de scripts op een pagina niet correct worden geladen of dat de hubproxy niet bereikbaar is of onjuist wordt geopend. Controleer of de scriptverwijzingen op uw pagina overeenkomen met de scripts die in uw project zijn geladen en of /signalr/hubs toegankelijk zijn in een browser wanneer de server wordt uitgevoerd.
Een of meer typen die nodig zijn om een dynamische expressie te compileren, kunnen niet worden gevonden
Deze fout geeft aan dat de Microsoft.CSharp bibliotheek ontbreekt. Voeg het toe op het tabblad Assemblies-Framework>.
De toestand van de beller kan niet worden benaderd vanuit Clients.Caller in Visual Basic of binnen een sterk getypeerde hub; foutmelding 'Conversie van type 'Task(Of Object)' naar type 'String' is ongeldig'.
Gebruik de Clients.CallerState eigenschap (geïntroduceerd in SignalR 2.1) in plaats van de Clients.Caller eigenschap om toegang te krijgen tot de status van de beller in Visual Basic of in een sterk getypeerde hub.
Problemen met Visual Studio
In deze sectie worden problemen beschreven die zijn opgetreden in Visual Studio.
Het knooppunt Scriptdocumenten wordt niet weergegeven in Solution Explorer
Sommige zelfstudies leiden u naar het knooppunt Scriptdocumenten in Solution Explorer tijdens foutopsporing. Dit knooppunt wordt geproduceerd door het JavaScript-foutopsporingsprogramma en wordt alleen weergegeven tijdens het opsporen van fouten in browserclients in Internet Explorer; het knooppunt wordt niet weergegeven als Chrome of Firefox wordt gebruikt. Het JavaScript-foutopsporingsprogramma wordt ook niet uitgevoerd als er een ander foutopsporingsprogramma voor clients wordt uitgevoerd, zoals het Silverlight-foutopsporingsprogramma.
SignalR werkt niet in Visual Studio 2008 of eerder
Dit gedrag is opzettelijk ontworpen. SignalR vereist .NET Framework 4 of hoger; Hiervoor moeten SignalR-toepassingen worden ontwikkeld in Visual Studio 2010 of hoger. Voor het serveronderdeel van SignalR is .NET Framework 4.5 vereist.
IIS-problemen
Deze sectie bevat problemen met Internet Information Services.
SignalR werkt op de Ontwikkelserver van Visual Studio, maar niet in IIS
SignalR wordt ondersteund op IIS 7.0 en 7.5, maar ondersteuning voor extensieloze URL's moet worden toegevoegd. Als u ondersteuning voor extensieloze URL's wilt toevoegen, raadpleegt u https://support.microsoft.com/kb/980368
SignalR vereist dat ASP.NET op de server is geïnstalleerd (ASP.NET niet standaard is geïnstalleerd op IIS). Zie ASP.NET Downloads om ASP.NET te installeren.
Problemen met Microsoft Azure
Deze sectie bevat problemen met Microsoft Azure.
FileLoadException bij het hosten van SignalR in een Azure-werkrol
Het hosten van SignalR in een Azure-werkrol kan leiden tot de uitzondering 'Kan bestand of assembly 'Microsoft.Owin, version=2.0.0.0' niet laden. Dit is een bekend probleem met NuGet; Bindingsomleidingen worden niet automatisch toegevoegd in Azure Worker Role Projects. U kunt dit probleem oplossen door de bindingsomleidingen handmatig toe te voegen. Voeg de volgende regels toe aan het app.config-bestand voor uw Worker Role-project.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Berichten worden niet ontvangen via de Azure-backplane na het wijzigen van onderwerpnamen
De onderwerpen die door het Azure-backplane worden gebruikt, worden intern onderhouden; ze zijn niet bedoeld om door de gebruiker te configureren.