在端口80 SxS IIS上运行自托管(Windows服务)ServiceStack http侦听器

时间:2012-07-19 15:15:53

标签: servicestack

我们正在从ASMX重写我们的服务 - > RESTful使用ServiceStack,因此短期内需要保持IIS和经典服务在端口80上运行。此外,我们的一些客户在IIS上监听端口80时托管多个Web应用程序(例如公司内部网)。

我的应用程序需要分发给数百个客户,因此我希望摆脱IIS依赖关系,以便更简单地部署更新 - 如果可能的话。我们还有许多客户在其路由器中为端口80设置了特殊转发,因此在不同的端口上侦听SS服务会导致很多部署的痛苦 - 更不用说大多数防火墙对端口80流量更宽松。

我有两个可能的相关问题:
1.当我可以在端口80上启动SS时,对于在其他端口上工作的路由,我得到“handler not found”。 2.在调试(启动/调试/停止/重启)时,最终听者注册似乎“坚持”,我最终得到:

System.Net.HttpListenerException (0x80004005): Failed to listen on prefix 'http://*:80/' because it conflicts with an existing registration on the machine.
   at System.Net.HttpListener.AddAllPrefixes()
   at System.Net.HttpListener.Start()
   at ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.Start(String urlBase) in C:\src\ServiceStack\src\ServiceStack\WebHost.Endpoints\Support\HttpListenerBase.cs:line 122
   at FieldCommService.FieldCommService.ConfigureServices() in e:\Development\Source\Hg\fieldcomm\src\Services\FieldCommService\FieldCommService.cs:line 305
   at FieldCommService.FieldCommService.Startup() in e:\Development\Source\Hg\fieldcomm\src\Services\FieldCommService\FieldCommService.cs:line 84

我不排除在IIS下托管服务作为解决方案,我只是不想接受/继续承担IIS附带的配置和部署痛苦。

我有两个问题:
1.正在监听:80作为自托管服务[使用AppHostHttpListenerBase]? 2.在AppHostHttpListenerBase的intellisense中,注意到此类旨在允许侦听IIS旁边的端口80,但需要“管理员用户权限”。这在Windows作为服务运行时意味着什么?属于Administrators组的标识?或者只是“本地系统”?

0 个答案:

没有答案