У меня есть приложение BizTalk 2013r2, у которого есть порт отправки ответа на запрос с использованием адаптера WCF-WebHttp. Порт отправки использует пользовательское поведение WCF, которое я разработал для присоединения заголовка авторизации OAuth, подробности которого можно увидеть here. Все отлично работает при работе с моим Azure dev vm, но я только что запустил его в первый раз на сервере BizTalk on-prem, где ему нужно будет работать с того момента, когда вы живете, я попал в проблему!Вызов BizTalk REST работает только при запуске Fiddler
Регулируя настройки на вкладке «Прокси» страницы конфигурации портового адаптера отправить, я пробовал сценарии:
- через корпоративный прокси-сервер - не откажет
- Direct к веб-службе целевой, нет прокси - несоответствие
- Через скрипача - работает
- Для местного макете службы (организовано SoapUI) - работает
, если Запрос осуществляется через корпоративный прокси-сервер или прямой (сетевое правило было создано, чтобы позволить этому), то я получаю EndpointNotFound исключения
При запуске WCF следа от неудачного запроса, я получаю следующее сообщение «Message Log трассировки» :
Круги вскоре после того, как с помощью:
Secon d, похоже, совпадает с первым, за исключением того, что добавлен элемент Адресация с пустым элементом Action. Я вижу, что второй - это журнал с источником = TransportSend, тогда как первый имеет источник = ServiceLevelSendRequest. Сразу же после второй журнал я вижу исключение:
<ExceptionType>System.ServiceModel.EndpointNotFoundException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>There was no endpoint listening at https://api-sandbox.tradeshift.com/tradeshift/rest/external/documents/dispatcher/?documentId=66553703-4f22-4294-9a28-1f3ecb22fcf2&documentProfileId=tradeshift.order.1.0 that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.</Message>
<StackTrace>
at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStreamAsyncResult.CompleteGetRequestStream(IAsyncResult result)
at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStreamAsyncResult.OnGetRequestStream(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.HttpWebRequest.SetResponse(Exception E)
at System.Net.ConnectionReturnResult.SetResponses(ConnectionReturnResult returnResult)
at System.Net.Connection.CompleteConnectionWrapper(Object request, Object state)
at System.Net.PooledStream.ConnectionCallback(Object owningObject, Exception e, Socket socket, IPAddress address)
at System.Net.ServicePoint.ConnectSocketCallback(IAsyncResult asyncResult)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
</StackTrace>
Где сделать запрос через Fiddler я вижу два одинаковых исходящих журналов, один для ServiceLevelSendRequest и один для TransportSend. Затем я вижу TransportReceive следует ServiceLevelReceiveReply, как содержащий HttpResponse элемент
Я был бы признателен за любые советы о том, как решить эту проблему, так что запросы могут быть сделаны либо через корпоративный прокси-сервер или напрямую - настаивают Fiddler работает на реальном сервере, на самом деле не вариант!
Имеет ли запрос через Скрипач Адресацию? – Dijkgraaf
Извините, Колин, мой пост не был большим - надеюсь, мое редактирование прояснилось? –
Работает ли это, если вы пытаетесь попасть в локальную конечную точку? Как внутренний, нет прокси вообще? –