我已经使用 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 方法中添加的全局请求过滤器实现了我自己的身份验证。我很困惑为什么将请求重定向到 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);
}
});