2017-10-18 8 views
0

私はASP .NETアプリケーションに次のコードを使用してSignalRミドルウェアを登録することができ、子ディレクトリからハブに接続できません:Signalr -

public partial class Startup { 
    public void Configuration(IAppBuilder app) { 

     app.MapSignalR(); 

    } 

} 

が、私はこれは私が「/ signalr /ハブにアクセスできるように動作するか検証することができます"自動的に生成されたJavaScriptファイル用のURL。

私はから接続することはできませんしかし、私は

init {state: {…}, connection: h…n.fn.init, hubName: "chathub", _: {…}, 
client: {…}, …} 
client 
: 
{} 
connection 
: 
hubConnection.fn.init {url: "/signalr", qs: null, lastError: null, _: {…}, 
logging: false, …} 
hubName 
: 
"chathub" 
server 
: 
{connect: ƒ, sendPrivateMessage: ƒ} 
state 
: 
{} 
_ 
: 
{callbackMap: {…}} 
__proto__ 
: 
Object 

を取得$.connection.chatHub;コマンドを入力すると、私は

<!--Reference the SignalR library. --> 
<script src="./Scripts/jquery.signalR-2.2.2.js"></script> 

<!--Reference the autogenerated SignalR hub script. --> 
<script src="./signalr/hubs"></script> 

を使用して、ルート./Default.aspx上にあるページからハブに接続することができます次のコードを使用してサブディレクトリにあるページ:

<script src="../Scripts/jquery.signalR-2.2.2.js"></script> 

<!--Reference the autogenerated SignalR hub script. --> 
<script src= "../signalr/hubs"></script> 

Uncaught TypeError: Cannot read property 'chatHub' of undefined 
at <anonymous>:1:14 

私はすでに成功せず、同様のGoogleで問題とstackoverflowのために検索した:私はエラーを取得するコマンド$.connection.chatHub;を使用してハブに接続してみてください。

誰か助けてもらえますか?ありがとう。

答えて

0

SignalRハブを "/ signalr"のアプリケーションビルダーパイプラインにマップできます。

var hubConfiguration = new HubConfiguration(); 
hubConfiguration.EnableDetailedErrors = true; 
app.MapSignalR(hubConfiguration); 

さらに、バンドルして表示することもできます。

BundleConfig.csあなたのビューで

bundles.Add(new ScriptBundle("~/bundles/signalR").Include(
     "~/Scripts/jquery.signalR-{version}.min.js" 
)); 

@Scripts.Render("~/bundles/signalR") 
<script src="~/signalr/hubs"></script>