У меня есть простое консольное приложение, которое использует службу WCF, которую я создал и размещаю в IIS. Когда я запускаю/отлаживаю консольное приложение напрямую, все работает нормально. Когда я запускаю консольное приложение через планировщик заданий, я получаю следующую ошибку:
05.22.2016 12:46:08 — Ошибка при получении профилей: не было прослушивания конечной точки на http://localhost/ServiceABC который мог бы принять сообщение. Это часто вызвано неверным адресом или действием SOAP. Дополнительные сведения см. в разделе InnerException, если он присутствует.
05.22.2016 12:46:08 — Внутреннее исключение: System.Net.WebException: Удаленный сервер вернул ошибку: (404) Не найдено. в System.Net.HttpWebRequest.GetResponse() в System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply (время ожидания TimeSpan)
Мое консольное приложение выглядит следующим образом:
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>
есть идеи?