3

更新: Visual Studio 開発サーバーの代わりに IIS Express に切り替えると、501 エラーが修正されました。

MVC4 アプリケーションで SignalR を動作させようとしていますが、奇妙な 501 エラーが発生します。いくつかの異なるチュートリアルに従いましたが、結果は常に同じです。

どんな助けでも大歓迎です。

Visual Studio 2012 Pro RC を使用しており、パッケージ マネージャー コンソールから SignalR 0.5.1 をインストールしました。

私のコード:

レイアウト

<script src="~/Scripts/jquery-1.7.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-0.5.1.js" type="text/javascript"></script>
<script type="text/javascript" src="@Url.Content("~/signalr/hubs")"></script>

意見

<script type="text/javascript">
$(function () {

    // capture the client IP
    var clientIp = $("#clientip").val();

    // create the SignalR proxy
    var userlink = $.connection.userlink;

    // create our callback for the proxy
    userlink.updateViewCount = function (message) {
        $('#view-updates').html('<p>' + message + '</p>');
    };

    // Start the connection
    $.connection.hub.start(function () {
        // send our 'record' message to the hub
        userlink.recordView(clientIp);
    });

});
</script>

<input type="hidden" id="client-ip" value="@ViewBag.ClientIpAddress" />
<div id="view-updates"></div>

ハブクラス

public class UserLink : Hub
{
    public void RecordView(string IpAddress)
    {
        QContext db = new QContext();
        db.SiteVisits.Add(new SiteVisit { CreateDate = DateTime.Now, IpAddress = IpAddress });
        db.SaveChanges();

        int userCount = db.SiteVisits.Count();

        string result = string.Format("There have been {0} visits to this page.", userCount);

        Clients.updateViewCount(result);
    }
}

私が受け取っているエラー

Failed to load resource: the server responded with a status of 501 (Not Implemented) http://localhost:58361/signalr/hubs
Uncaught TypeError: Cannot set property 'updateViewCount' of undefined 
4

3 に答える 3

0

これをまだ修正していない場合は、これを行う必要があると思います。

[HubName("userlink")]
public class UserLink : Hub
{
   // Implementation
}

余談ですが、サイトに/ Signalrフォルダーがある場合は、おそらくそれが501の原因です。これにより~/signalr/hubs、組み込みのVisual Studio Webサーバーを使用したjavascript参照との競合が発生しますが、IISExpressでは正常に機能します。

于 2012-06-18T15:30:54.770 に答える
0

元の質問には必要ありませんが、ここに到着した他の人は、SignalR のバージョン 0.5.xを使用し、Visual Studio MVC ツールがインストールされている場合、競合する可能性があります。

VS ツールと SignalR の間には既知の競合があり、近いうちに修正される予定です。


Microsoft ASP.NET MVC 3 & 4 - Visual Studio 2010 Tools
から削除するだけです
Control Panel\Programs\Programs and Features

于 2012-07-31T23:26:53.793 に答える
0

Visual Studio Development Server の代わりに IIS でデバッグすると問題は解決しますが、その理由はわかりません。なぜそれが一方では機能し、他方では機能しないのか誰かが知っているかどうか、私は興味があります。

于 2012-06-18T19:49:59.027 に答える