2017-08-23 7 views
0

J'ai un service hébergé sur http://127.0.0.1:2113/ et ont fait l'enregistrement d'URL suivante dans http.sysinscription Wildcard en http.sys ne correspond pas à des adresses loopback

http://*:2113/ 

Cependant, pour une raison quelconque le service lance l'exception

System.Net.HttpListenerException (0x80004005): Access is denied 
HTTP async server failed to start listening 

Si j'ajoute également l'enregistrement d'URL

http://127.0.0.1:2113/ 

à ht tp.sys, alors ça marche. Le même scénario se déroule, si j'héberge le service sur http://localhost:2113/

Quelqu'un peut-il expliquer cela? J'ai lu à propos des enregistrements génériques dans http.sys et d'après ce que je peux comprendre, il devrait correspondre à ces adresses aussi. Peut-être devrais-je ajouter, que j'ai vérifié que je n'ai pas d'autres enregistrements sur le port 2113.

Répondre

0

L'adresse que vous enregistrez avec netsh.exe (http: // *: 2113 /) doit exactement correspondre à l'adresse que vous donnez à HttpListener, c'est une exigence http.sys.

+0

Merci pour la clarification. J'ai trouvé la documentation concernant les jokers (* et +) ici: https://msdn.microsoft.com/en-us/library/windows/desktop/aa364698(v=vs.85).aspx Mais selon votre réponse, cela ne s'applique pas aux enregistrements http.sys? – SabrinaMH

+0

Vous pouvez utiliser des caractères génériques dans votre enregistrement, mais vous devez utiliser le même caractère générique lorsque vous démarrez HttpListener. Les règles génériques auxquelles vous êtes lié concernent ce qui se passe lorsque vous avez plusieurs enregistrements/applications. – Tratcher

+0

Encore une fois, merci pour l'explication en profondeur! :) – SabrinaMH