2016-05-22 13 views
0

私は作成したWCFサービスを消費する単純なコンソールアプリケーションをIISでホストしています。コンソールアプリケーションを直接実行/デバッグすると、すべて正常に動作します。私は、タスクスケジューラを通じてコン​​ソールアプリケーションを実行すると、私は次のエラーを取得する:次のようにタスクスケジューラを介してコンソールアプリケーションを実行しているときにWCFを使用できません

22/05/2016 12:46:08 PM - Error getting profiles: There was no endpoint listening at http://localhost/ServiceABC that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

22/05/2016 12:46:08 PM - Inner Exception: System.Net.WebException: The remote server returned an error: (404) Not Found. at System.Net.HttpWebRequest.GetResponse() at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)

マイコンソールアプリケーションは、次のように

Sub Main() 
    GetProfiles() 
End Sub 

Sub GetProfiles() 
    Try 
     WriteToFile("Getting Profiles") 
     Dim client As New WcfServiceLibraryABCIIS.ServiceABCClient 
     client.Endpoint.Binding.SendTimeout = New TimeSpan(0, 20, 0) 
     client.GetProfiles() 
     WriteToFile("Finished Getting Profiles") 
    Catch ex As Exception 
     'WriteToFile("Error getting profiles: " + ex.Message + ex.StackTrace) 
     WriteToFile("Error getting profiles: " + ex.Message) 
     WriteToFile("Inner Exception: " + ex.InnerException.ToString) 
    End Try 

End Sub 

Private Sub WriteToFile(text As String) 
    text = DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + " - " + text 
    Dim path As String = "C:\Users\abcuser\Documents\ServiceLog.txt" 
    Using writer As New StreamWriter(path, True) 
     writer.WriteLine(String.Format(text, DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt"))) 
     writer.Close() 
    End Using 
End Sub 

私のApp.configファイルには、次のとおりです。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
    <system.serviceModel> 
     <bindings> 
      <wsHttpBinding> 
       <binding name="WSHttpBinding_IServiceABC" /> 
      </wsHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://localhost/ServiceABC" binding="wsHttpBinding" 
       bindingConfiguration="WSHttpBinding_IServiceABC" contract="WcfServiceLibraryABCIIS.IServiceABC" 
       name="WSHttpBinding_IServiceABC"> 
       <identity> 
        <userPrincipalName value="ABCCOMPUTER\abcuser" /> 
       </identity> 

      </endpoint> 
     </client> 
    </system.serviceModel> 
</configuration> 

どのような考えですか?

答えて

0

問題が解決しました。

間違ったエンドポイントアドレスを使用していました。

<endpoint address="net.tcp://localhost/ServiceABC" binding="netTcpBinding" 
      bindingConfiguration="netTcpEndpoint" contract="WcfServiceLibraryABCIIS.IServiceABC" 
      name="netTcpEndpoint"> 

そして、私は、クライアントを作成します:

Dim client As New WcfServiceLibraryABCIIS.ServiceABCClient("netTcpEndpoint") 
私は、コンソールアプリケーションのApp.configファイルは、現在への参照が含まれて、私のWCFサービスへのnetTcpBindingエンドポイントを追加しました
関連する問題