2016-05-10 12 views
0

WindowsサービスでホストされているWCFサービスを消費しようとしているときに、HTTP取得エラーが発生しましたが、ターゲットマシンが積極的に拒否したため、接続できませんでした。コンソールアプリケーションのアプリケーションは正常に動作します。問題は、アプリケーションがWindowsサービスでホスティングするときになっています。下位のコードがサービスをホストするために使用しています。WindowsサービスでホストされているWCFサービスを消費中にHTTPを取得する

protected override void OnStart(string[] args) 
{ 
     try 
     { 
      Uri baseAddress = new Uri("http://localhost:8080/AuditService/"); 


      host = new ServiceHost(typeof(AuditService), baseAddress); 


      ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 
      smb.HttpGetEnabled = true; 
      smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15; 
      host.Description.Behaviors.Add(smb); 

      host.AddServiceEndpoint(typeof(IAuditService), new BasicHttpBinding(BasicHttpSecurityMode.None), baseAddress); 

      host.Open(); 
     } 
     catch (Exception) 
     { 
      host.Abort(); 

     } 
} 
+0

http://www.csharptutorial.in/30/csharp-net-how-to-consume-wcf-service- hosted-as-window-services – Popeye

答えて

0

ポートが開いていますか?

ポートは、あなたは間違っているものを見るために例外の詳細を確認することができます開かれていない場合は、この使用してTelnetクライアント

telnet machine 8080 

を確認することができます。

あなたのHTTPベースのサービスは、あなたがここにWCF ServiceHost access rights

+0

は、次のコマンドを実行しました。netsh http add urlacl url = http:// +:8080/AuditService user = "NETWORK SERVICE"今はその仕事。しかし、簡単なクエリがあるので、サービスが管理者アカウントを使用してインストールされている場合、このURL登録は不要ですか? – Libin

0

あなたの詳細を見つけることができます、あなたはコマンドでそれを登録する必要があり、最も可能性の高い次

netsh http add urlacl url=http://+:8080/AuditService user=mylocaluser 

のように管理者以外のアカウントで起動された場合管理者とコマンド・プロンプトを開き、次のテキストを入力してください。

netsh http add urlacl url=http://+:8080/AuditService user=Everyone 
関連する問題