Aplikacje Silverlight, SignalR i IIS z domyślnej witryny sieci Web
Używam SignalR w aplikacji Silverlight 5. Kiedy hostuję moją aplikację w „aplikacji” z domyślnej strony internetowej w IIS 7.5 (tj. Localhost / subsite) Skrzypek pokazuje, że dostaję 404 za „/ signalr / negotiate”.
Wydaje się, że nie uwzględnia ścieżki aplikacji IIS. Powinno być żądanie „/ podwitryna / sygnał / negocjacja”. Jak uzyskać poprawny prefiks URL?
Aktualizacja: musiałem użyć następującego kodu, ponieważ uzyskanie prawdziwego głównego identyfikatora URI w aplikacji silverlight wydaje się trudne, bez konieczności przeprowadzania analizy.
string xapLocationUri = Application.Current.Host.Source.AbsoluteUri;
string rootUri = xapLocationUri.Substring(0, xapLocationUri.IndexOf("/ClientBin"));
hubConnection = new HubConnection(rootUri);
Nie możesz polegać na następujących elementach, jeśli znajdujesz się w aplikacji wyłączonej z głównej witryny sieci Web w usługach IIS:
Application.Current.Host.Source.GetComponents(UriComponents.Scheme | UriComponents.HostAndPort, UriFormat.Unescaped)