【发布时间】:2018-05-05 23:55:29
【问题描述】:
您好,我正在尝试在控制台应用程序中运行 signalR。 这是我到目前为止的代码
class Program
{
static IDisposable dis = null;
static void Main(string[] args)
{
try
{
dis = WebApp.Start<Startup>("http://localhost:10476");
Console.WriteLine("hi");
Console.ReadKey();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
if (dis != null)
dis.Dispose();
}
}
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
public class myHub : Hub
{
public void Hello()
{
Console.WriteLine("hi");
Clients.All.OK();
}
}
更新
这是我的客户代码
function send() {
var connection = $.hubConnection("http://localhost:10476");
var hub = connection.createHubProxy("myHub");
hub.on("OK", function () {
alert("HI");
});
connection.start({jsonp: true})
.done(function () {
console.log('connected');
hub.invoke("Hello");
})
.fail(function (a) {
console.log('not connected' + a);
});
}
注意:我的客户端和集线器是分开的(我希望客户端是浏览器扩展,而服务器是我计算机上的应用程序) 但是,当我调用此函数时,浏览器坐在“请求的资源上不存在'Access-Control-Allow-Origin'标头。因此,不允许访问Origin'http://localhost:63343'。” 我的客户代码正确吗?
【问题讨论】:
-
您是否以管理员身份运行它?如果没有管理员权限,应用程序可能无法打开端口 476。或者它可以被另一个应用程序使用。为了安全起见,您应该始终使用 10000 以上的端口
-
请不要那样做。在解决问题后更改问题在 Stack Overflow 上被认为是非常糟糕的行为。您应该回滚这些编辑并提出一个新问题
-
没有完全解决,只是问题的一部分。但我会记住这一点
标签: c# web-applications signalr