Silverlight-, SignalR- und IIS-Anwendungen von der Standardwebsite entfernt

Ich verwende SignalR in einer Silverlight 5-Anwendung. Wenn ich meine App in einer "Anwendung" außerhalb der Standardwebsite in IIS 7.5 (d. H. Localhost / subsite) hoste, zeigt Fiddler, dass ich eine 404 für "/ signalr / negotiate" erhalte.

Der IIS-Anwendungspfad scheint nicht berücksichtigt zu werden. Es sollte "/ subsite / signalr / negotiate" anfordern. Wie kann ich dafür sorgen, dass das richtige URL-Präfix verwendet wird?

Update: Ich musste den folgenden Code verwenden, da es anscheinend schwierig ist, den tatsächlichen Root-URI in einer Silverlight-App zu ermitteln, ohne eine Analyse durchzuführen.

string xapLocationUri = Application.Current.Host.Source.AbsoluteUri;  

string rootUri = xapLocationUri.Substring(0, xapLocationUri.IndexOf("/ClientBin"));  

hubConnection = new HubConnection(rootUri);  

Sie können sich nicht wirklich auf Folgendes verlassen, wenn Sie in einer Anwendung außerhalb der Stammwebsite in IIS gehostet werden:

Application.Current.Host.Source.GetComponents(UriComponents.Scheme | UriComponents.HostAndPort, UriFormat.Unescaped)  

Antworten auf die Frage(0)

Ihre Antwort auf die Frage