2016-02-13 50 views
0

我創建了一個簡單的WCF服務並託管在控制檯應用程序中。 配置完所有端點後,我收到如下的異常。如何解決WCFhost中的AddressAccessDeniedException

enter image description here

低於我的配置文件

<?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> 

幫助我如何解決這個問題?

回答

0

由於操作系統中的權限問題而發生此錯誤。 您的操作系統不允許指定端口上的WCF服務。 您只需爲該端口創建一個例外。 下面是具體的步驟:

  1. 單擊開始
  2. 運行命令提示符作爲管理員
  3. netsh.exe中,然後按回車
  4. HTTP添加urlacl URL = http://+ :/服務/user = 管理員然後按回車。

在這裏,你需要觀察三個點

8081:是你需要訪問你的端口。將其替換爲您自己的端口號。

服務:這是您的sesrvice名稱。例如:MyWeatherService

管理員:您必須在計算機上訪問您想要的服務。在我的例子中,我授予了管理員的權限。例如:如果您的機器上有一位名爲puppy的用戶,您可以訪問該小狗。

0

首先檢查是否WCF服務可以用戶口80

+0

我加了答案。現在問題已解決。 – aditya

0

運行應用程序作爲管理員,它會解決這個問題。