如何在ServiceStack中设置WebHostUrl?

时间:2013-11-19 01:20:12

标签: servicestack

我正在使用ServiceStack 4.0.17,Host.Instance.Config.WebHostUrl始终为空。

我正在使用ServiceStack作为独立的Web应用程序 - 没有MVC或ASP.NET - 由IIS Express(VS2013)以集成模式提供服务。

是否有任何必要的配置将ServiceStack作为我可能缺少的独立Web应用程序运行?

如果有人遇到同样的问题,我创建了一个可以在Application_BeginRequest中使用的临时解决方法:

 private void SetApplicationUrl()
        {
            if (_applicationUrl == null)
            {
                lock (_applicationUrlLock)
                {
                    if (ServiceStackHost.Instance.Config.WebHostUrl != null) return;

                    // Remove the page path information.
                    Regex regex = new Regex("(" + HttpContext.Current.Request.Url.AbsolutePath + ")$");

                    _applicationUrl = regex.Replace(HttpContext.Current.Request.Url.AbsoluteUri, string.Empty);

                    ServiceStackHost.Instance.Config.WebHostUrl = _applicationUrl;
                }
            }
        }

1 个答案:

答案 0 :(得分:4)

应使用 SetConfig 方法在AppHost.Configure()中设置所有ServiceStack配置,例如:

SetConfig(new HostConfig {
    WebHostUrl = myBaseUrl,
});