ServiceStack AuthFeature 空引用异常
ServiceStack AuthFeature null reference exception
我有一个简单的 servicestack 自托管应用程序,除了其他所有内容外,它还尝试使用身份验证。在 AppHost 构造函数中,我调用了
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[]
{
new RoomsAuthProvider(),
}));
但我在那个调用期间总是得到空引用异常。我试过分离调用 - 在一个字符串中创建身份验证功能,在另一个字符串中添加 - AuthFeature 创建失败。我也试过打电话
Container.Register(new MemoryCacheClient());
这没有任何改变。附上任何想法welcome.Stacktrace
ServiceStack.AuthFeature.<.ctor>b__a(String s)
ServiceStack.AuthFeature..ctor(Func`1 sessionFactory, IAuthProvider[] authProviders, String htmlRedirect)
CoreServer.Program.AppHost..ctor() в C:\Users\Sorrow\documents\visual studio 2015\Projects\RoomsServicestack\CoreServer\Program.cs
CoreServer.Program.Main(String[] args) в C:\Users\Sorrow\documents\visual studio 2015\Projects\RoomsServicestack\CoreServer\Program
System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
System.Threading.ThreadHelper.ThreadStart()
In AppHost constructor i make a call
不要在 AppHost 构造函数中注册任何插件,所有配置都应在 AppHost.Configure()
内进行,例如:
public override void Configure(Container container)
{
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[] {
new RoomsAuthProvider(),
}));
}
这与您的问题无关,但如果您想注册 Caching Provider,则需要针对 ICacheClient
界面进行注册,例如:
Container.Register<ICacheClient>(new MemoryCacheClient());
这将让您通过 ICacheClient
接口解决依赖关系:
var cache = Container.Resolve<ICacheClient>();
这是必需的,因为任何使用缓存的内置服务都会解析已注册的 ICacheClient
依赖项。
我有一个简单的 servicestack 自托管应用程序,除了其他所有内容外,它还尝试使用身份验证。在 AppHost 构造函数中,我调用了
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[]
{
new RoomsAuthProvider(),
}));
但我在那个调用期间总是得到空引用异常。我试过分离调用 - 在一个字符串中创建身份验证功能,在另一个字符串中添加 - AuthFeature 创建失败。我也试过打电话
Container.Register(new MemoryCacheClient());
这没有任何改变。附上任何想法welcome.Stacktrace
ServiceStack.AuthFeature.<.ctor>b__a(String s)
ServiceStack.AuthFeature..ctor(Func`1 sessionFactory, IAuthProvider[] authProviders, String htmlRedirect)
CoreServer.Program.AppHost..ctor() в C:\Users\Sorrow\documents\visual studio 2015\Projects\RoomsServicestack\CoreServer\Program.cs
CoreServer.Program.Main(String[] args) в C:\Users\Sorrow\documents\visual studio 2015\Projects\RoomsServicestack\CoreServer\Program
System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
System.Threading.ThreadHelper.ThreadStart()
In AppHost constructor i make a call
不要在 AppHost 构造函数中注册任何插件,所有配置都应在 AppHost.Configure()
内进行,例如:
public override void Configure(Container container)
{
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[] {
new RoomsAuthProvider(),
}));
}
这与您的问题无关,但如果您想注册 Caching Provider,则需要针对 ICacheClient
界面进行注册,例如:
Container.Register<ICacheClient>(new MemoryCacheClient());
这将让您通过 ICacheClient
接口解决依赖关系:
var cache = Container.Resolve<ICacheClient>();
这是必需的,因为任何使用缓存的内置服务都会解析已注册的 ICacheClient
依赖项。