在同一端口上自托管.NET远程处理和OWIN?

在同一端口上自托管.NET远程处理和OWIN?,owin,remoting,Owin,Remoting,我在Windows服务中使用TCP上的.NET远程处理构建了一个遗留应用程序服务器。我想介绍一些依赖OWIN的框架,比如WebAPI和SignalR,而不需要新的端口 到目前为止,我试图在同一端口上注册.NET远程处理和OWIN都失败了 如果首先启动OWIN,远程处理配置将失败,出现System.Runtime.remoting.RemotingException“试图以访问权限所禁止的方式访问套接字” 如果首先启动远程处理,则OWIN启动将失败,出现System.Net.HttpListene

我在Windows服务中使用TCP上的.NET远程处理构建了一个遗留应用程序服务器。我想介绍一些依赖OWIN的框架,比如WebAPI和SignalR,而不需要新的端口

到目前为止,我试图在同一端口上注册.NET远程处理和OWIN都失败了

如果首先启动OWIN,远程处理配置将失败,出现
System.Runtime.remoting.RemotingException
“试图以访问权限所禁止的方式访问套接字”

如果首先启动远程处理,则OWIN启动将失败,出现
System.Net.HttpListenerException
“该进程无法访问该文件,因为它正被另一个进程使用”


这并不让我感到惊讶。但问题仍然存在,有没有办法让这种配置工作?

可能不是个好主意。您只能让一个“东西”监听套接字,不管它是否在同一进程中。您必须创建自己的TCP侦听器,然后检查并将请求转发给Owin和远程处理。不值得头痛的是,只使用单独的端口。或者,与其像TCP侦听器那样低级,不如使用一个OWIN中间件。OWIN打开一个Http侦听器,只有当您的通道通过Http时,它才能用于远程处理。