我正在使用javascript客户端开发Signalr自主机服务器应用程序。它与Console应用程序一起使用,但在WPF中不能使用相同的代码。
这是我的控制台应用代码。
class Program
{
static void Main(string[] args)
{
string url = "http://localhost:8080";
using (WebApp.Start<Startup>(url))
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
}
}
public class MyHub : Hub
{
public void Send(string name, string message)
{
Clients.All.addMessage(name, message);
}
}
和WPF代码。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
string url = "http://localhost:8080";
using (WebApp.Start(url))
{
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
}
}
public class MyHub : Hub
{
public void Send(string name, string message)
{
Clients.All.addMessage(name, message);
}
}
在javascirpt中按照以下方式访问
<script src="~/Scripts/jquery-1.6.4.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="http://localhost:8080/signalr/hubs"></script>
<script type="text/javascript">
$(document).ready(function () {
$.connection.hub.url = "http://localhost:8080/signalr";
// Declare a proxy to reference the hub.
var chat = $.connection.myHub;
$.connection.hub.start().done(function () {
chat.server.send('test', 'message');
});
});
</script>
现在,当运行控制台应用程序时,它的工作正常。它发送消息,我也在Send方法上遇到调试点。但是当使用WPF应用程序运行时,在浏览器控制台中我会得到以下javascirpt错误
&#34;加载集线器时出错。确保您的集线器引用正确&#34;
任何人都知道为什么它不能使用WPF应用程序?
。