Exception 使用C#.NET 2.0在IIS上启动多个HTTP侦听器

Exception 使用C#.NET 2.0在IIS上启动多个HTTP侦听器,exception,iis-6,listeners,httplistener,Exception,Iis 6,Listeners,Httplistener,我有两个windows服务在同一台机器上运行。这两项服务都使用 私有HttpListener侦听器 我为每个服务分别将baseURL指定为“&”。然后我做必要的事,打电话给你 listener.Start() 第一个服务在8080端口成功启动。但当我现在开始第二次服务时, 我为侦听器对象获取HTTPListenerException“进程无法访问该文件,因为它正被另一个进程使用” 谁能告诉我: 1) 如果可以在同一IIS上的两个不同端口启动两个HTTP侦听器。 2) 如果是的话,我们怎样才能做到

我有两个windows服务在同一台机器上运行。这两项服务都使用

私有HttpListener侦听器

我为每个服务分别将baseURL指定为“&”。然后我做必要的事,打电话给你

listener.Start()

第一个服务在8080端口成功启动。但当我现在开始第二次服务时, 我为侦听器对象获取HTTPListenerException“进程无法访问该文件,因为它正被另一个进程使用”

谁能告诉我: 1) 如果可以在同一IIS上的两个不同端口启动两个HTTP侦听器。 2) 如果是的话,我们怎样才能做到这一点? 3) 还有别的方法吗

供您参考: 我正在使用C#.NET2.0和IIS6.0服务器

谢谢和问候


Hari

HttpListener不是独立于IIS工作吗?你能停止IIS服务,看看会发生什么吗

或者端口8081被另一个程序或进程使用。我建议尝试将端口设置为另一个数字。在启动服务之前,您可以打开命令行并执行“”命令,查看端口是否已使用



(来源:)

HTTPListener确实不是IIS的一部分。这只是C代码

你是这样做的吗

String[] prefixes = { "http://localhost:8280/", "http://localhost:8281/"};

HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8280/");
listener.Start();
1) 如果可以在同一IIS上的两个不同端口启动两个HTTP侦听器

是的。但是IIS上的侦听器不是通过代码生成的,而是通过IIS管理工具生成的,所以这可能不是您想要做的。IIS与您正在尝试的c#代码是分开的

2) 如果是的话,我们怎样才能做到这一点

  • 尝试其他端口号(如58080和58081),并尝试将“IPAddress”替换为“localhost”。您的端口号很可能被其他web服务器使用
3) 还有别的方法吗

如果您试图为web页面提供服务,您可能不想制作web应用程序,而不是制作自己的HTTP服务器


如果你正在做一些定制的事情,你可能想看看WCF(Windows Communication Foundation),因为它是web、sockets、,web服务等,这是MS今后将要使用的

在使用端口号时,快速查看页面通常是个好主意…只是为了确保您尝试使用的临时号码尚未使用