我在Silverlight 5应用程序中使用SignalR。 当我主持我的应用程序在“应用”关在IIS 7.5默认网站(即本地主机/子网站)的提琴手显示我得到一个404“/ signalr /谈判”。
它似乎并没有采取IIS应用程序路径考虑。 应请求“/子网站/ signalr /谈判”。 我如何得到它使用了正确的URL前缀?
更新:我有,因为它似乎是很难获得在Silverlight应用程序真正的根URI没有做一些解析使用下面的代码。
string xapLocationUri = Application.Current.Host.Source.AbsoluteUri;
string rootUri = xapLocationUri.Substring(0, xapLocationUri.IndexOf("/ClientBin"));
hubConnection = new HubConnection(rootUri);
你真的不能依靠以下,如果你在关闭IIS中的根网站的应用托管:
Application.Current.Host.Source.GetComponents(UriComponents.Scheme | UriComponents.HostAndPort, UriFormat.Unescaped)