尝试实现AppHostHttpListenerBase时出现许可错误

时间:2016-03-15 15:12:17

标签: servicestack

我试图创建第二个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 });

        }
    }

1 个答案:

答案 0 :(得分:3)

自托管应用程序无法从Web.config读取,它们从应用程序配置App.config读取,因此您必须为主机可执行文件创建适当的配置文件。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <add key="servicestack:license" value="{licenseKeyText}" />
</configuration>