【问题标题】:ServiceStack communications with Windows ServiceServiceStack 与 Windows 服务的通信
【发布时间】:2017-01-06 17:30:10
【问题描述】:

我开发了一个多层应用程序。我使用带有 ServiceStack (AppHostHttpListenerBase) 的 http 与 Windows 服务通信。虽然这在干净的环境中运行良好,但我经常发现客户的计算机不是那么干净,并且第一个问题区域是引入了不需要的代理,导致我的应用程序无法运行。我收到很多关于应用程序无法正常运行的坏消息,而实际上这是客户机器上隐藏问题的结果。 当我去查询我的端点时,代理会干扰我与服务的所有通信。

我正在考虑回到 WCF 并使用命名管道,但在我这样做之前,想知道在 ServiceStack 世界中是否有更好的方法(我非常喜欢) 想法?有什么建议吗?

【问题讨论】:

    标签: c# wcf windows-services servicestack


    【解决方案1】:

    如果本地 HTTP 代理引起问题,您可以尝试的一件事是使用 SSL,它可以让您将流量作为不透明的二进制文件通过其代理进行隧道传输,从而最大限度地减少干扰的可能性。

    为 HttpListener 配置 SSL 对所有 HttpListener 的配置方式相同,即它不是特定于 ServiceStack - 它需要在运行它的操作系统上进行配置。

    这个答案显示了如何在 Windows 上配置 SSL:https://stackoverflow.com/a/11457719/85785

    按照上述步骤,您将能够将 https 与 ServiceStack HttpListener self-host 一起使用,我使用“https://*:8443/”作为 url 并使用“CN=localhost”绕过 SSL 浏览器警告对话框。

    答案中并不清楚,但您可以从证书的详细信息选项卡中获取指纹,然后您需要删除空格。如果更简单,您可以按照下面答案中的演练使用 MMC 导入证书:https://stackoverflow.com/a/33905011/85785

    【讨论】:

    • 但这需要在每台计算机上安装证书。这是一款卖给消费者的应用……不可行。
    • @Jeff 更多地考虑为有问题的客户解决可能的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多