c# - 设置在根 SignalR 端点上显示的 HTML

标签 c# signalr

我有一个使用 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/

相关文章:

c# - 与 SignalR Hub 的连接失败并显示协商 404(未找到)

signalr - 浏览器多个选项卡中的不同连接

javascript - SignalR 不会触发客户端回调

c# - System.Net.Mail - 尝试将带有附件的邮件发送到 gmail,但仅适用于小附件

c# - 获取只有文件扩展名的 Shell Icon

c# - 从 C# 调用 python 脚本

c# - 由于 'AzureWebJobsStorage' 连接字符串未设置或无效,SignalR 触发器被禁用。 Azure.RequestFailedException : Service request failed

javascript - angular 2 在 typescript 中使用 javascript 包

c# - 将值传递给 IValueConverter

c# - 为什么 C# 数组类型 IsSerializable 属性为 True?