2012-04-01 2 views
1

SignalR을 시도 중이며 자바 스크립트 오류가 발생했습니다. 상태는 정의되지 않았습니다. 상태는 내 허브이며 다음과 같이 정의한다 : 나는 URL을 http://localhost:16476/signalr/hubs을하려고하면SignalR에서 'HubName'이 정의되지 않음을 반환합니다.

namespace SignalRDemo 
{ 
    public class Status : Hub, IDisconnect, IConnected 
    { 

     public Task Disconnect() 
     { 
      return Clients.leave(Context.ConnectionId, DateTime.Now.ToString()); 
     } 

     public Task Connect() 
     { 
      return Clients.joined(Context.ConnectionId, DateTime.Now.ToString()); 
     } 

     public Task Reconnect(IEnumerable<string> groups) 
     { 
      return Clients.rejoined(Context.ConnectionId, DateTime.Now.ToString()); 
     } 

    } 
} 

, 난 자바 스크립트 코드를 받았지만없는 상태 허브 인스턴스가있다.

나는 다음과 같은 어셈블리를 참조한 : SignalR.dll, Newtonsoft.Json.dll, WebActivator.dll, Microsoft.Web.Infrastructure.dll

내 default.aspx에 사이트가 보이는 같은 :

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 
<script src="/Scripts/jquery-1.6.4.min.js" type="text/javascript"></script> 
<script src="/Scripts/json2.min.js" type="text/javascript"></script> 
<script src="/Scripts/jquery.signalR.js" type="text/javascript"></script> 
<script type="text/javascript" src='<%= ResolveClientUrl("~/signalr/hubs")  %>'></script> 
<script type="text/javascript"> 
$(function() { 
var status = $.connection.status; 

status.joined = function (id, when) { 
    if ($.connection.hub.id === id) { 
    addMessage(id, 'blue'); 
    } 

addMessage(id + ' joined at ' + when, 'green'); 
}; 

status.rejoined = function (id, when) { 
addMessage(id + ' reconnected at ' + when, 'purple'); 
}; 

status.leave = function (id, when) { 
addMessage(id + ' left at ' + when, 'red'); 
}; 

function addMessage(value, color) { 
$('#messages').append('<li style="background-color:' + color + ';color:white">' + value + '</li>'); 
} 

$.connection.hub.start({ transport: activeTransport }); 

}); 
</script> 
</head> 
<body> 
<ul id="messages"> 
</ul> 
</body> 
</html> 

이 예제는 공식 SignalR 예제에서 복사 한 것입니다. 나는 내 자신의 asp.net 웹 응용 프로그램을 작성하고 거기에 코드를 넣어. 누군가가 내비게이션 나에게 무엇을 그리워 할 수 있습니까?

+0

코드를 으로 변경할 수 있습니까? – aKzenT

+0

나는 그것을 시도했지만, 같은 오류가 발생했습니다. 내 질문에 http : // localhost : 16476/signalr/hubs URL에 연결할 수 있지만 허브 누락 된 인스턴스가 있습니다. 허브 인스턴스를 렌더링하지 않기 때문에 문제는 서버 측에 있다고 생각합니다. – zosim

+0

activeTransport는 어디에 정의되어 있습니까? 또한 너겟을 통해 또는 수동으로 신호 R을 추가 했습니까? – drch

답변

0

@drch : 좋은 질문입니다. 나는 activeTransport를 정의하는 것을 잊었다. 그러나 그것은 단지 부차적 인 문제였습니다.

저는 KzenT의 포인트 덕분에 문제를 해결했습니다. 내 웹 응용 프로그램 프로젝트를 웹 사이트 프로젝트로 변경했습니다. 웹 응용 프로그램에서 App_Code 폴더를 추가 할 수있는 옵션이 없었기 때문입니다.

그런 다음 동적 포트의 Visual Studio에서 웹 사이트를 실행할 때 몇 가지 문제가있었습니다. 디버그 콘솔에서 jquery.js를 찾을 수 없으며 json2.js를 찾을 수 없습니다 ... 모든 js 파일에 대해 기록합니다. 내가 iis에 배포하면 작동하기 시작합니다.

관련 문제