我正在使用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;
}
}
}
答案 0 :(得分:4)
应使用 SetConfig 方法在AppHost.Configure()
中设置所有ServiceStack配置,例如:
SetConfig(new HostConfig {
WebHostUrl = myBaseUrl,
});