我在Silverlight 5应用程序中使用SignalR。当我在IIS 7.5中的默认网站(即localhost / subsite)的“应用程序”中托管我的应用程序时,Fiddler显示我获得了“/ signalr / negotiate”的404.
似乎没有考虑IIS应用程序路径。应该请求“/ subsite / signalr / negotiate”。如何让它使用正确的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)