我在 Silverlight 5 应用程序中使用 SignalR。当我将我的应用程序托管在 IIS 7.5(即本地主机/子站点)默认网站的“应用程序”中时,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)