この段階で私が提供している実際の情報が不足しているため、ロングショットだと思います. 問題を再現する方法の詳細を喜んで提供しますが、見逃していた問題がないかどうかを確認するために、迅速なフィードバックが必要でした.
私は Facebook Auth Provider で遊んでいる単純な ServiceStack ハロー ワールド アプリケーションを持っています。
- バニラ ServiceStack
- バニラ Facebook 認証プロバイダー
- バニラ ユーザー セッション
- バニラ OrmLite ユーザー リポジトリ
- バニラ OrmLite MySql Db Factory
ローカル マシンでデバッグする場合 - Windows 7 (および 8)。すべてがうまくいきます。サービスが起動し、データベース テーブルが作成され、Facebook 経由でログインできるようになり、関連するテーブルにレコードが挿入されます。
Vagrant Box 内の Ubuntu でサービスを実行すると (仮想化のプロバイダーとして Virtual Box で実行され、mono-fastcgi を使用して nginx でホストされます)、サービスが正しく起動し、MySql データベースにテーブルが作成されていることがわかります。ヒットすると、Facebook/auth/facebook
に正しく転送されますが、サービスへのコールバックが発生するとエラーが発生します。
これは現在の出力です:
[Auth: 07/30/2013 13:02:47]: [REQUEST: {provider:facebook}] System.NullReferenceException: Object reference not set to an instance of an object at
ServiceStack.ServiceInterface.Auth.FacebookAuthProvider.Authenticate (ServiceStack.ServiceInterface.IServiceBase,ServiceStack.ServiceInterface.Auth.IAuthSession,ServiceStack.ServiceInterface.Auth.Auth) <0x0061e> at
ServiceStack.ServiceInterface.Auth.AuthService.Authenticate (ServiceStack.ServiceInterface.Auth.Auth,string,ServiceStack.ServiceInterface.Auth.IAuthSession,ServiceStack.ServiceInterface.Auth.IAuthProvider) <0x000a7> at
ServiceStack.ServiceInterface.Auth.AuthService.Post (ServiceStack.ServiceInterface.Auth.Auth) <0x00303> at
ServiceStack.ServiceInterface.Auth.AuthService.Get (ServiceStack.ServiceInterface.Auth.Auth) <0x00013> at (wrapper dynamic-method) object.lambda_method (System.Runtime.CompilerServices.Closure,object,object) <0x0004f> at
ServiceStack.ServiceHost.ServiceRunner`1<ServiceStack.ServiceInterface.Auth.Auth>.Execute (ServiceStack.ServiceHost.IRequestContext,object,ServiceStack.ServiceInterface.Auth.Auth) <0x00416>
localhost:8080
それは明らかにサービスに到達しています(ポート80のゲストマシンにマップする経由でアクセスしています)。エラーは ServiceStack 出力に適切にラップされているためです。
誰も手がかりを持っていないと思いますか?