我有一个 ASP.NET Web 应用程序,带有简单的 SignalR 设置和集线器。当我发布文件时,它会生成 web/packages.config 和/bin/dll。
在客户端,我还可以轻松访问 IIS 上的集线器:
var hubConnection = new HubConnection("http://localhost:80");
IHubProxy proxy = hubConnection.CreateHubProxy("TestHub");
当我访问http://localhost/signalr/hubs时我可以看到生成的集线器,但它到底是如何工作的?我在 IIS 文件夹中找不到/signalr/hubs 目录。 它何时以及如何生成?
最佳答案
该目录根本没有生成,它永远不存在。
路由器是 ASP.NET 和一般 Web 框架的重要组成部分。基本上,您熟悉静态文件处理程序(处理“/myFolder/myFile.doc”等路由)并将文件返回到浏览器。
但是,您还需要一种执行代码的方法。由于对 Web 服务器执行请求的主要方式是 REST; Web 框架将某些 URL 动词组合路由到代码处理程序。这就是 WebAPI 和 MVC 的工作原理。对于 SignalR,它会注册“/signalr/hubs”路由,并在请求该路由时返回生成的 javascript 文件。
关于C# IIS SignalR/signalr/hubs 文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44375693/