System.ServiceModel.AddressAccessDeniedException:HTTP无法注册URL http :: 8080
我创建了我的第一个自托管WCF服务。 我在C#控制台应用程序中托管它,但它抛出一个错误:
System.ServiceModel.AddressAccessDeniedException:HTTP无法注册URL http:8080
当我以管理员身份运行Visual Studio 2013时,它运行良好,但如果我不这样做则不行。 那么任何方法来自动完成它而不是作为ADMIN启动VS?
到目前为止,我创建了一个HelloService
类库,其中我添加了一个WCF服务,该服务由一个接口IHelloService
和HelloService
。
IHelloService
:
namespace HelloService { [ServiceContract] public interface IHelloService { [OperationContract] String GetMsg(); } }
HelloService
:
namespace HelloService { public class HelloService : IHelloService { public String GetMsg() { return "Service Accessed"; } } }
然后我创建了一个C#控制台应用程序HelloServiceHost
,它有一个app.config
文件:
和program.cs文件:
using HelloService; using System.ServiceModel; namespace HelloServiceHost { class Program { static void Main(string[] args) { using(ServiceHost sh = new ServiceHost(typeof(HelloService.HelloService))) { sh.Open(); Console.WriteLine("Host Started @"+ System.DateTime.UtcNow.ToShortDateString()); sh.Close(); } } } }
我完全按照video教程进行了操作但是为什么不工作呢?
我正在使用VS 2013,.net 4
以管理员身份启动cmd并输入:
netsh http add urlacl url = http:// +:8080 / MyUri user = DOMAIN user
这对我有用。
我在另一个项目上遇到了同样的问题。
问题是绑定到TCP端口需要管理权限。 有几种方法可以解决这个问题。
-
保持管理命令提示符处于打开状 然后你可以直接运行控制台应用程序。
-
(正如你的建议)以管理员身份运行VS. 仅在调试应用程序时,这是绝对必要的。
-
创建一个应用程序最明显的文件,指定requestedExecutionLevel level =“requireAdministrator”。 请参阅如何强制我的.NET应用程序以管理员身份运行? 更多细节。
在您的情况下需要根路径URL( http:// +:8080 / )权限:
netsh http add urlacl url=https://+:8080/ user=%USERDOMAIN%%USERNAME%
显示所有url预订:
netsh http show urlacl | FIND "URL"
如果在Windows服务上启动服务时遇到此错误,则可以检查流程安装程序上的帐户。
上述就是C#学习教程:System.ServiceModel.AddressAccessDeniedException:HTTP无法注册URL http :: 8080分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
[RunInstaller(true)] public class ProjectInstaller : Installer { private ServiceProcessInstaller process; private ServiceInstaller service; public ProjectInstaller() { process = new ServiceProcessInstaller(); process.Account = ServiceAccount.LocalSystem; service = new ServiceInstaller(); service.ServiceName = "WCFWindowsServiceSample"; Installers.Add(process); Installers.Add(service); } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952257.html