Tag: httplistener

Httplistener与https支持

似乎有很多令人困惑的,有时是相互冲突的,有关使.net HTTPListener https能力的信息。 我的理解如下: 一个人的C#代码需要一个https前缀(例如https://*:8443 ),以便侦听者明白它需要在此端口上处理SSL请求。 实际的SSL握手发生在封面上,由http.sys (埋在Windows机器的某处)处理; C#代码不必显式pipe理ssl握手,因为它发生在封面之下。 一个需要在httpListener机器上有一个“x509受信任的证书”,并且不知何故该证书需要被绑定到端口8443(在这个例子中) 我的理解是否正确? 如果没有,请教育我。 关于x509证书,我的理解是: 使用makecert创build一个x509证书。 该证书存储在个人存储中,需要移动到Trusted Store(这是http侦听器的外观)。 似乎我可以使用certMgr来执行移动,或者我可以使用mmc来实现移动。 似乎有超过1 x509证书格式( DER , Base64 , pks ,pswd保护pks私人等)。是否有一个首选的格式,我应该使用? 一旦我将证书放入可信存储区,我需要将其绑定到tcp端口。 我在Win7上:我应该使用httpcfg还是netsh ? 任何提示/build议,将不胜感激。

HttpListener访问被拒绝

我正在用C#编写一个HTTP服务器。 当我尝试执行函数HttpListener.Start()我得到一个HttpListenerException说 “拒绝访问”。 当我在Windows 7中以pipe理员模式运行应用程序时,它工作正常。 我可以让它运行没有pipe理模式? 如果是的话如何? 如果没有,我怎么能使应用程序开始运行后更改为pipe理模式? using System; using System.Net; namespace ConsoleApplication1 { class Program { private HttpListener httpListener = null; static void Main(string[] args) { Program p = new Program(); p.Server(); } public void Server() { this.httpListener = new HttpListener(); if (httpListener.IsListening) throw new InvalidOperationException("Server is currently running."); httpListener.Prefixes.Clear(); httpListener.Prefixes.Add("http://*:4444/"); try { […]