我在VS2008中放置了一个小型WCF服务,当我尝试使用HTTP协议运行主机时,它会因为没有相应的权限而遭到轰炸。在我的“Host.Open()”行中,我得到以下异常:“ HTTP无法注册URL http://+:9001/。您的进程没有对此命名空间的访问权限。”我似乎没有使用TCP的这个问题。我的o / s是Vista家庭高级版。
当我尝试在VS2008中调试它时,就会发生这种情况。经过大量的研究,我确定我可以让主机通过构建运行,转到“bin”文件夹,右键单击我的可执行文件,选择“以管理员身份运行”。当我尝试使用WcfSvcHost.exe时发生了同样的事情。在成功让WcfSvcHost运行我的服务之前,我必须使用“以管理员身份运行”从菜单中打开VS2008命令提示符窗口。
有没有办法正确执行此操作而不是使用此解决方法?当我尝试在下周将其部署在Windows 2003 Server上时,我是否会遇到类似的问题?
答案 0 :(得分:7)
此链接可能会对您有所帮助:http://msdn.microsoft.com/en-us/library/ms733768.aspx
简短版本:从特权控制台预注册url / namespace
netsh http add urlacl url = http://+:9001/ user = DOMAIN \ user
答案 1 :(得分:2)
确保以管理员身份启动VS ..
答案 2 :(得分:1)
在本地,您可以将基地址更改为以下内容:
<host>
<baseAddresses>
<add baseAddress="http://localhost:8731/Design_Time_Addresses/MyService/" />
</baseAddresses>
</host>
主要部分是添加“Design _ Time _ Addresses”。如果您创建WCF服务库项目,它默认为此项目设置App.config。一切都运行良好,但是如果删除“Design _ Time _ Addresses”并尝试使用“http://localhost:8731/MyService/”运行它,您将收到正在运行的错误。
答案 3 :(得分:0)
我在这里遇到了类似的问题:
WCF ServiceHost basicHttpBinding 503 error
netsh命令适用于Vista,但对于Windows 2003服务器,有一个HttpCfg.exe实用程序,允许您为帐户注册URL /命名空间。不确定netsh是否在2003年可用。
我从未真正让它在Vista上工作,当我尝试访问这些服务时,我仍然遇到503错误。如果你遇到同样的问题/想出来,如果你再发一次,我会很感激!感谢