2014年2月26日水曜日

Visual Studio 2013+PhoneGap+TypeScript+SignalR(Web&Nativeアプリ):SignalRのアプリを作った時のエラー対処について

SignalRを使うサイトを作ってみた。
そのときに発生したエラーと対策をまとめる。

1)コードのエラー
エラー 2 'System.Web.Routing.SignalRRouteExtensions.MapHubs(System.Web.Routing.RouteCollection)' は古い形式です:
'Use IAppBuilder.MapSignalR in an Owin Startup class. See http://go.microsoft.com/fwlink/?LinkId=320578 for more details.' O:\20140225_vs2013_signalR\WebApplicationSignalRSample\WebApplicationSignalRSample\Global.asax.cs 16 4 WebApplicationSignalRSample

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/upgrading-signalr-1x-projects-to-20

修正して、Global.asaxからStartupクラスへSignalRの登録を変更


2)コンパイルのエラー
型 'System.IO.FileLoadException' の例外が Microsoft.AspNet.SignalR.Core.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
追加情報:ファイルまたはアセンブリ 'Microsoft.Owin, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)

NuGetパッケージマネージャで、SingnalRとjQueryのアップデイトを実施

最後にエラーが出たので、htmlのscriptタグのsrc属性のバージョンを変えて対応完了し、ビルドが通った。
(nodejsのsocket.ioと比べるとかなり楽でフイタI


3)開発環境のIIS Express 8.0は順調に動いた。
そして、テストは、Android、iOS、Windowsで実施しようとサーバに発行してみたら、動作しない。
ブラウザのエラーは
Failed to load resource: the server responded with a status of 404 (Not Found) http://hogehoge.com/negotiate?connectionData=%5B%7B%22name%22%3A%22echo%22%7D%5D&clientProtocol=1.3&_=1393377622430
event.returnValue is deprecated. Please use the standard event.preventDefault() instead.

が出ており、どうやらIIS 7.5では、WebSocketが動作しないようだ。
で、はまったしまい、諦めた。下記の対策を入れても動かない、、、、
http://blogs.msdn.com/b/timlee/archive/2013/03/21/hosting-a-signalr-application-on-windows-2008r2-and-iis-7-5.aspx#config
http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting

0 件のコメント:

コメントを投稿