我在visual studio中创建了一个带有signalR引用的应用程序。 创建了一个中心。在IIS Express上运行应用程序时,一切正常 精细。当我将它传输到IIS8时,在firebug中我看到signalR的URL是错误的, 例如:
http://localhost/signalr/negotiate?connectionData=......
网站名称缺失的问题应该是:
http://localhost/MYSITE/signalr/negotiate?connectionData=......
这是我用来初始化连接的脚本:
<script type="text/javascript">
var proxy;
$(function () {
var connection = $.hubConnection();
proxy = connection.createHubProxy('chatHub');
proxy.on('newMessage', onNewMessage);
connection.start();
$('#send').click(onSend);
});
function onNewMessage(message) {
$('#messages').append('<li>' + $('#message').val() + '</li>');
}
function onSend() {
proxy.invoke('newMessage', $().val());
}
</script>
我尝试发送连接到$ .hubConnection(),但随后网站名称增加了一倍:
http://localhost/MYSITE/MYSITE/signalr/negotiate?connectionData=......
答案 0 :(得分:0)
在包含脚本/其他资源时,使用代字号来引用应用程序根目录。我有类似的设置,这对我在开发和生产环境中起作用:
<script src="~/Scripts/jquery.signalR-1.1.2.js" type="text/javascript"></script>
<script src="~/signalr/hubs" type="text/javascript"></script>