我试图创建第二个App主机进行自托管,因此我的单元测试与服务处于同一个进程中,以帮助调试。我创建了新的app主机,如下所示。当我的Unit测试调用.Init()方法时,我收到以下错误:
ServiceStack.LicenseException未被用户代码处理 的HResult = -2146233088 消息=< 10 ServiceStack Operations' 10的免费配额限制已达到。请参阅https://servicestack.net升级到商业许可证或访问https://github.com/ServiceStackV3/ServiceStackV3以恢复到免费的ServiceStack v3。 源= ServiceStack.Text
下面的类与我真正的AppHost(我的主要ASP.NET服务项目)在同一个程序集中。所以web.config中肯定有一个许可证密钥。文件。
public class ServiceTestAppHost : AppSelfHostBase
{
public const string BaseUrl = "http://localhost/dvsvc";
public ServiceTestAppHost()
: base("Test Web Services", typeof(DV.Svc.Interface.HelloService).Assembly) { }
public override void Configure(Funq.Container container)
{
ServiceStack.Text.JsConfig.IncludeNullValues = true;
ServiceStack.Text.JsConfig.DateHandler = ServiceStack.Text.DateHandler.ISO8601;
ServiceStack.Text.JsConfig.ExcludeTypeInfo = true; //exclude the type specification
ServiceStack.Formats.HtmlFormat.Humanize = false;
//most apps use credentials auth. the TVTI player uses Basic auth
Plugins.Add(new AuthFeature(() =>
new DVAuthUserSession(),
new ServiceStack.Auth.IAuthProvider[] { new DVCredentialsAuthProvider(), new DVBasicAuthProvider() })
/*{ HtmlRedirect = null }*/
);
//in memory cache
container.RegisterAs<MemoryCacheClient, ICacheClient>();
SetConfig(new HostConfig { DebugMode = true });
}
}
答案 0 :(得分:3)
自托管应用程序无法从Web.config
读取,它们从应用程序配置App.config
读取,因此您必须为主机可执行文件创建适当的配置文件。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<add key="servicestack:license" value="{licenseKeyText}" />
</configuration>