C# 如何解决WCFhost中的AddressAccessDeniedException

C# 如何解决WCFhost中的AddressAccessDeniedException,c#,asp.net,wcf,C#,Asp.net,Wcf,我创建了一个简单的WCF服务,并托管在一个控制台应用程序中。 配置完所有端点后,我得到一个异常,如下所示 下面是我的配置文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.serviceModel> <services> <service name="HelloService.HelloService" behaviorConfigu

我创建了一个简单的WCF服务,并托管在一个控制台应用程序中。 配置完所有端点后,我得到一个异常,如下所示

下面是我的配置文件

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="HelloService.HelloService" behaviorConfiguration="mexBehaviour">
        <endpoint address="HelloService" contract="HelloService.IHelloService" binding="basicHttpBinding"></endpoint>
        <endpoint address="HelloService" contract="HelloService.IHelloService" binding="netTcpBinding"></endpoint>
        <endpoint address="mex" contract="IMetadataExchange" binding="mexHttpBinding"></endpoint>
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8081/"/>
            <add baseAddress="net.tcp://localhost:8090/"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="mexBehaviour">
          <serviceMetadata httpGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>


请帮助我如何解决此错误?

此错误是由于操作系统中的权限问题而发生的。 您的操作系统不允许在指定端口上使用WCF服务。 您所需要做的就是为该端口创建一个异常。 以下是程序:

  • 单击开始
  • 管理员身份运行cmd提示符
  • 键入netsh.exe并按enter键
  • 键入http add urlacl url=:8081/Service/user=administrator并按enter键
  • 这里你需要注意三点

    8081:是您需要访问的端口。将其替换为您自己的端口号

    服务:这是您的服务名称。例:MyWeatherService


    管理员:您必须授予对计算机上所需ser的访问权限。在我的情况下,我给了管理员访问权限。例如:如果您的计算机上有一个名为puppy的用户,您可以授予对puppy的访问权限。

    首先检查WCF服务是否可以用户端口80作为管理员运行您的应用程序,它将解决此问题