Visual Studio を使用して、servicestack を使用して Web サービスを実装しました。vs デバッガーからサービスを実行すると問題なく動作します。XSP4 を使用して debian マシンにデプロイしようとしました。このサービスは、サービスが稼働中であることがわかるログを利用しています。サービスを開始するとログ ファイルが作成されますが、要求を実行しても機能しません。たとえば、ブラウザを使用して次のリクエストを行います。
http://127.0.0.1/Activity/5b1e5316-8ea5-4ba5-aaee-7f40151b80d3/Unit
しかし、ブラウザは次の場所にリダイレクトされています。
http://127.0.0.1/login.aspx?ReturnUrl=%2fActivity%2f5b1e5316-8ea5-4ba5-aaee-7f40151b80d3%2fUnit
Configure メソッドに追加するグローバル requestfilter を使用して、独自の認証を実装しました。なぜリクエストが login.aspx にリダイレクトされるのか、非常に混乱しています。また、ログ ファイルには次の内容が表示されます。
エラー 2013-01-10 00:07:53.2631 NotFoundHttpHandler 192.168.23.2 要求が見つかりません: /login.aspx?ReturnUrl=%2fActivity%2f5b1e5316-8ea5-4ba5-aaee-7f40151b80d3%2fUnit
この動作の原因は何ですか?グローバル フィルターを追加するコードは次のとおりです。
this.RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
try
{
var userCreds = httpReq.GetBasicAuthUserAndPassword();
if (userCreds == null)
{
httpResp.ReturnAuthRequired();
return;
}
var userName = userCreds.Value.Key;
var userPass = userCreds.Value.Value;
if (!TryResolve<IAuthenticationProvider>().AuthenticateUser(userName, userPass))
{
httpResp.ReturnAuthRequired();
}
return;
}
catch (Exception ex)
{
log.Error(ex);
throw new ApplicationException(ex.Message, ex);
}
});