netsh не работает для AddressAccessDeniedException: HTTP не может зарегистрировать URL - PullRequest
3 голосов
/ 14 июня 2011

Когда другой разработчик пытался запустить службу через 2010 г., он получил сообщение об ошибке:

Please try changing the HTTP port to 88 or running as Administrator. System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL <a href="http://+:88/ColorService/" rel="nofollow">http://+:88/ColorService/</a>. Your process does not have access rights to this namespace (see <a href="http://go.microsoft.com/fwlink/?LinkId=70353" rel="nofollow">http://go.microsoft.com/fwlink/?LinkId=70353</a> for details). ---> System.Net.HttpListenerException: Access is denied

После выполнения некоторых поисков и перехода по указанной Microsoft ссылке, у меня были ихвыполните следующую команду:

netsh http add urlacl url = http://+:88/ColorService user = BUILTIN \ Administrators

Ошибка все еще возникла, поэтому я также попросил их выполнить команду со своим доменом \ пользователем

netsh http add urlacl url = http://+:88/ColorService user = DOMAIN \ User

Выше все еще не сработало, поэтому я нашел инструмент по следующей ссылке напопробуйте и предоставьте доступ к NT Authority \ Interactive, но это тоже не сработало.

Я наконец вернулся к предоставлению каждой конечной точке базового адреса:

http:\\localhost:8732\Design_Time_Addresses\ColorService ипосле этого он работал.

Почему он не работает с другими базовыми адресами?

У меня также не было узлов dns в каждой конечной точке, имеет ли это значение?Для чего это используется?Я добавил его обратно как:

 <Host>
     <dns>localhost<dns/>
 </Host> 

1 Ответ

2 голосов
/ 20 марта 2012

У меня была эта ошибка. Я настроил его в app.config с конечными точками, такими как:

<host>
<baseAddresses>
    <add baseAddress="http://ttintlonape01:6970/janus/data" />
</baseAddresses>

... но он придумал http://+:80/janus/data, который вы получили.

Получилось, что WCF автоматически вводит конечную точку (не знаю, когда) - добавление в конфигурацию исправило ее. * 1010 Т.е. *

<service behaviorConfiguration="ServiceBehavior" name="TT.Janus.Service.DataProvider">
<clear />
<endpoint address="net.tcp://ttintlonape01/janus/data" binding="netTcpBinding"
    bindingConfiguration="NoSecurityBinding" contract="TT.Janus.Service.IDataProvider" />
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
<host>
    <baseAddresses>
        <add baseAddress="http://ttintlonape01:6969/janus/data" />
    </baseAddresses>
</host>

...