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)