{"id":1004,"date":"2013-01-05T09:39:16","date_gmt":"2013-01-05T08:39:16","guid":{"rendered":"https:\/\/www.kolja-engelmann.de\/blog\/?p=1004"},"modified":"2013-01-05T09:39:16","modified_gmt":"2013-01-05T08:39:16","slug":"c-httplistener-zugriff-verweigert-fehler-beheben","status":"publish","type":"post","link":"https:\/\/www.kolja-engelmann.de\/blog\/2013\/01\/c-httplistener-zugriff-verweigert-fehler-beheben\/","title":{"rendered":"C# &#8211; HttpListener Zugriff Verweigert Fehler beheben"},"content":{"rendered":"<p>&#8222;Kolja, ich brauch mal rasch einen HTTP Server.&#8220; &#8211; &#8222;Klar, kein Problem.&#8220;<\/p>\n<p>Oder doch?<\/p>\n<pre class=\"lang:c# mark:3 decode:true\">HTTPListener httpListener = new HttpListener();\r\nhttpListener.Prefixes.Add(\"http:\/\/127.0.0.1:80\/\");\r\nhttpListener.Start(); \/\/Throws Exception<\/pre>\n<p>Bling,System.Net.HttpListenerException &#8211;\u00a0Zugriff Verweigert &#8211; Error 5 \u00a0usw.usf. Zun\u00e4chst dachte ich, dass da doch bestimmt wieder ein Programm sich bereits meinen Port geschnappt hat und ich deswegen den Fehler erhalte. Ich hatte sofort Skype im Verdacht, musste mich aber bei diesem entschuldigen, Skype war nicht der B\u00f6sewicht. Der Port war frei und dennoch grinste mich der Fehler an. Anscheinend gibt es da eine Windows-Einschr\u00e4nkung, dass man sich nur mit bestimmten Rechten an diese Ports binden darf. Das erreicht man entweder, indem man sein Programm <a title=\"C# \u2013 Programm automatisch mit Administratorrechten neu starten\" href=\"https:\/\/www.kolja-engelmann.de\/blog\/2013\/01\/c-programm-automatisch-mit-administratorrechten-neu-starten\/\">selbst mit Administratorrechten startet<\/a> oder aber man f\u00fchrt folgendes Kommando in einer Adminshell aus:<\/p>\n<p><code>netsh http add urlacl url=<strong>http:\/\/+:80\/<\/strong> user=DOMAIN\\Username listen=yes<\/code><\/p>\n<p>Zu beachten ist hierbei, dass der <code>url<\/code> Parameter exakt dem Pr\u00e4fix des <code>HttpListeners<\/code> gleicht, sonst wird das nix. Den obigen Code ver\u00e4nderte wie folgt:<\/p>\n<pre>HTTPListener httpListener = new HttpListener();\r\nhttpListener.Prefixes.Add(\"http:\/\/+:80\/\");\r\nhttpListener.Start();<\/pre>\n<p>Nun lief alles wie es sollte. Da man nach dem Spielen aber stets wieder aufr\u00e4umen sollte, kann man den URLACL Eintrag nat\u00fcrlich auch wieder aus dem System entfernen:<\/p>\n<p><code>netsh http delete urlacl http:\/\/+:80\/<\/code><\/p>\n<p>Done;<\/p>","protected":false},"excerpt":{"rendered":"<p>&#8222;Kolja, ich brauch mal rasch einen HTTP Server.&#8220; &#8211; &#8222;Klar, kein Problem.&#8220; Oder doch? HTTPListener httpListener = new HttpListener(); httpListener.Prefixes.Add(&#8222;http:\/\/127.0.0.1:80\/&#8220;); httpListener.Start(); \/\/Throws Exception Bling,System.Net.HttpListenerException &#8211;\u00a0Zugriff Verweigert &#8211; Error 5 \u00a0usw.usf. Zun\u00e4chst dachte ich, dass da&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":867,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[38],"tags":[39],"class_list":["post-1004","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codeschnippsel","tag-c"],"jetpack_featured_media_url":"https:\/\/www.kolja-engelmann.de\/blog\/wp-content\/uploads\/2012\/11\/c_sourcecode.jpg","jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/1004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/comments?post=1004"}],"version-history":[{"count":0,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/posts\/1004\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media\/867"}],"wp:attachment":[{"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/media?parent=1004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/categories?post=1004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kolja-engelmann.de\/blog\/wp-json\/wp\/v2\/tags?post=1004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}