【问题标题】:Self hosted servicestack redirects remote machines to localhost自托管服务堆栈将远程机器重定向到本地主机
【发布时间】:2014-09-17 13:26:59
【问题描述】:

我有一个 ServiceStack 应用程序,它在自托管而不是使用 IIS 时几乎可以工作。

如果我启动服务并从远程计算机连接到 PC 的 IP 地址http://10.0.0.5:81,那么一切正常,一切正常。

但是,如果我启动该服务并且第一个连接恰好在 localhost 上进入(比如因为我正在测试该服务在安装后是否正常工作),那么所有远程机器都会被重定向到 http://localhost:81。如果我使用127.0.0.1:81 将远程PC 重定向到环回地址,情况也是如此。

那时我所能做的就是重新启动服务并首先从远程计算机连接以使其再次工作。

有什么方法可以禁用这种缓存吗?

【问题讨论】:

  • Windows 7 64bit和Windows 8 64位,“http://*:81/”为起始地址。

标签: servicestack


【解决方案1】:

ServiceStack 尝试为您的服务推断 BaseUrl,它只能在运行时执行,然后缓存以供后续请求使用。您可以指定它以使用显式 Base Url 来代替:

SetConfig(new HostConfig { 
    WebHostUrl = "http://10.0.0.5:81",
});

【讨论】:

  • 一旦我将它添加为可配置选项,就应该这样做。没有办法只禁用缓存以便它适用于所有位置吗?
  • @Saurbaum 没有 atm,BaseUrl 存储在静态属性中,如果禁用缓存,则并发请求可能会更改其他请求的 BaseUrl。
猜你喜欢
  • 1970-01-01
  • 2016-02-02
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多