4

v2 の前:

RouteTable.Routes.MapHubs();

v2 では、MapHubs はもう存在しません。wiki には、Startup クラスと Configuration メソッド、および app.MapHubs() の呼び出しを追加するように書かれています。

namespace MyAssembly 
{
public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        //Before v2
        //RouteTable.Routes.MapHubs();

        app.MapHubs();
    }
}
}

ただし、メソッドは呼び出されず、エラーは発生せず、ハブもセットアップされません。

global.asax.cs に追加するコードがあると思います

秘密は何ですか?

4

4 に答える 4

1

編集:関係のない行を削除しました。

解決 !

<appSettings>
    <add key="owin:AppStartup" value="MyNameSpace.Startup, MyNameSpace" />
</appSettings>

さらに、MVC4 (プレリリースではなく、最新の安定バージョン) と SignalR/owin ナゲットの両方を更新します。

さらに、js クライアントのバグを修正します。

  • disconnectTimeout=999000 の場合、無効になります。サーバー側で設定する必要があります: GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(999); 注: サーバー側は値 < 6 を設定できません (DisconnectTimeout < 6 の場合、signalr は例外をスローします)。このマジックナンバーを使ってください。
  • webSockets: sockettransport で connection.socket = null を設定します。それ以外の場合、start の呼び出しは、(手動での) stop の呼び出しの後に失敗します。
  • serverSentEvents: ウィンドウのアンロード時の再接続試行によるエラーを防止します
  • シグナルハブの URL が (一時的に) 利用できない場合、chrome は例外で失敗します: あきらめる代わりに、次に利用可能なプロトコルを試してください / 再接続を試みてください。
于 2013-07-26T06:47:48.523 に答える
0

2.0 ベータ版を動作させることができました

  • 古いバージョンの SignalR へのすべての参照を削除します。つまり、ライブラリの nuget アンインストールと /bin のダブル チェック

  • パッケージ マネージャー コンソール経由で SignalR 2.0.0-beta2 をインストールInstall-Package Microsoft.AspNet.SignalR -Pre

  • ここで概説されている 1.x から 2.0 への移行の手順に従う

  • そして最も重要なのは、Visual Studio Developer Server (Cassini) の代わりにローカル IIS Web サーバーを使用するようにプロジェクト構成を変更することです。

ここに投稿した質問/回答の詳細

于 2013-07-31T00:38:38.290 に答える
0

web.config には、クラスの完全修飾名が必要です。

<appSettings>
    <add key="owin:AppStartup" value="**My.Name.Space.Startup**, **AssemblyName**" />
</appSettings>

アセンブリ名の代わりに名前空間を配置すると問題が発生しましたが、完全修飾名を使用すると、web.config に他の変更を加えることなく機能します。

更新: リンクからの手順も実行しました: http://www.asp.net/vnext/overview/latest/release-notes#TOC13、つまり、NuGet パッケージ "Microsoft.AspNet.SignalR.Owin" を削除しました

于 2013-08-02T23:03:09.727 に答える