我有一个使用 SignalR 进行通信的 C# 客户端和服务器应用程序。服务器是一个自托管的可执行文件。一切正常。当我将服务器的端点地址(又名 http://blahBlah:18080/
)放入浏览器时,它会显示一个完全空白的页面。 (这比服务器未运行时的情况要多。)但是,我想重用该端点来显示服务器的一些状态信息。如何指定由该默认 SignalR 端点返回的 HTML?我的服务器设置非常简单,列在这里:
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR(new HubConfiguration
{
EnableDetailedErrors = true,
EnableJavaScriptProxies = false,
EnableJSONP = false,
});
最佳答案
SignalR 不适用于提供 HTML 页面。除了映射 SignalR 之外,您还需要将 OWin 配置为文件服务器。据我所知,您将无法将 SignalR 和静态文件映射到同一目录。例如,您可以将 http://bloBlah:18080/
映射到文件系统,并将 SignalR 映射到 http://bloBlah:18080/signalR
。
首先是通过 NuGet 添加 Microsoft.Owin.StaticFiles
。然后,创建到 index.html 文件的映射。此代码示例非常基础 - 您需要仔细查看 FileServer 选项。
var options = new FileServerOptions()
{
EnableDirectoryBrowsing = false,
};
options.DefaultFilesOptions.DefaultFileNames.Add("index.html");
app.UseFileServer(options);
这两个代码示例帮助我解决了这个问题:
关于c# - 设置在根 SignalR 端点上显示的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515794/