netsh не работает для AddressAccessDeniedException: HTTP не может зарегистрировать URL
Когда другой разработчик попытался запустить службу через 2010, они получили ошибку:
Please try changing the HTTP port to 88 or running as Administrator.
System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:88/ColorService/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details). ---> System.Net.HttpListenerException: Access is denied
После некоторых поисков и перехода по указанной Microsoft ссылке, я попросил их выполнить следующую команду:
netsh http add urlacl url = http: // +: 88 / ColorService user = BUILTIN \ Администраторы
Ошибка все еще возникла, поэтому я также попросил их запустить команду с доменом \ пользователем
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 ответ
У меня была эта ошибка. Я настроил его в app.config с конечными точками, такими как:
<host>
<baseAddresses>
<add baseAddress="http://ttintlonape01:6970/janus/data" />
</baseAddresses>
... но он придумал http://+:80/janus/data, который вы получили.
Оказалось, что WCF автоматически устанавливает конечную точку (не уверен, когда) - добавление
<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>