Очередь SOAP - PullRequest
       25

Очередь SOAP

1 голос
/ 17 сентября 2009

У меня странная проблема при вызове службы WCF из flex. Когда я тестирую из Eclipse (Run as или Debug), а URL-адрес в браузере указывает на C: ..., вызов службы успешен:

16:17:31.008 [DEBUG] mx.rpc.soap.Operation Invoking SOAP operation ValidateAccessCode
16:17:31.009 [DEBUG] mx.rpc.soap.SOAPEncoder Encoding SOAP request envelope
16:17:31.009 [DEBUG] mx.rpc.soap.SOAPEncoder Encoding SOAP request body
16:17:31.016 [INFO] mx.messaging.Producer 'F811DF57-4C4D-5611-DC5E-C85D49EE383E' producer sending message '44400FF3-A69E-DEB2-AC58-C85D7488E174'
16:17:31.017 [DEBUG] mx.messaging.Channel 'direct_http_channel' channel sending message:
(mx.messaging.messages::SOAPMessage)#0
  body = "<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <tns:ValidateAccessCode xmlns:tns="http://tempuri.org/">
      <tns:accessCode>AccessCode37042273</tns:accessCode>
    </tns:ValidateAccessCode>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>"
  clientId = "DirectHTTPChannel0"
  contentType = "text/xml; charset=utf-8"
  destination = "DefaultHTTP"
  headers = (Object)#1
  httpHeaders = (Object)#2
    SOAPAction = ""http://tempuri.org/IValidationService/ValidateAccessCode""
  messageId = "44400FF3-A69E-DEB2-AC58-C85D7488E174"
  method = "POST"
  recordHeaders = false
  timestamp = 0
  timeToLive = 0
  url = "http://srv-edu-build.televic.com/mnt-edumatic/3-1validationservice/ValidationService.svc"
16:17:37.678 [INFO] mx.messaging.Producer 'F811DF57-4C4D-5611-DC5E-C85D49EE383E' producer acknowledge of '44400FF3-A69E-DEB2-AC58-C85D7488E174'.
16:17:37.681 [INFO] mx.rpc.soap.SOAPDecoder Decoding SOAP response
16:17:37.681 [DEBUG] mx.rpc.soap.SOAPDecoder Encoded SOAP response <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><ValidateAccessCodeResponse xmlns="http://tempuri.org/"/></s:Body></s:Envelope>
16:17:37.681 [DEBUG] mx.rpc.soap.SOAPDecoder Decoding SOAP response envelope
16:17:37.682 [DEBUG] mx.rpc.soap.SOAPDecoder Decoding SOAP response body
16:17:37.682 [INFO] mx.rpc.soap.SOAPDecoder Decoded SOAP response into result [1 millis]
16:17:37.683 [INFO] main PackageSession successfully validated

Когда я вызываю службу из приложения, запущенного на веб-сервере (url = http: \ ...), вызов службы завершается неудачно:

16:20:44.953 [DEBUG] mx.rpc.soap.Operation Queueing SOAP operation ValidateAccessCode

Вот и все, очевидно, операция ставится в очередь, и ничего не происходит (даже если я подожду пару минут).

У кого-нибудь есть идея, почему операция ставится в очередь и почему она не ставится в очередь, если запускается из Eclipse?

Обновление: после добавления Crossdomain.xml, разрешающего все домены, я теперь получаю следующее:

16:32:54.892 [DEBUG] mx.rpc.soap.Operation Invoking SOAP operation ValidateAccessCode
16:32:54.893 [DEBUG] mx.rpc.soap.SOAPEncoder Encoding SOAP request envelope
16:32:54.893 [DEBUG] mx.rpc.soap.SOAPEncoder Encoding SOAP request body
16:32:54.899 [INFO] mx.messaging.Producer 'E165E360-52DD-FAAE-8688-C86B4A89A006' producer sending message 'C56EE3C5-CFFB-55CD-19EA-C86B8D7365FF'
16:32:54.900 [DEBUG] mx.messaging.Channel 'direct_http_channel' channel sending message:
(mx.messaging.messages::SOAPMessage)#0
  body = "<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <tns:ValidateAccessCode xmlns:tns="http://tempuri.org/">
      <tns:accessCode>AccessCode20388909</tns:accessCode>
    </tns:ValidateAccessCode>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>"
  clientId = "DirectHTTPChannel0"
  contentType = "text/xml; charset=utf-8"
  destination = "DefaultHTTP"
  headers = (Object)#1
  httpHeaders = (Object)#2
    SOAPAction = ""http://tempuri.org/IValidationService/ValidateAccessCode""
  messageId = "C56EE3C5-CFFB-55CD-19EA-C86B8D7365FF"
  method = "POST"
  recordHeaders = false
  timestamp = 0
  timeToLive = 0
  url = "http://srv-edu-build.televic.com/mnt-edumatic/3-1validationservice/ValidationService.svc"
16:32:54.902 [INFO] mx.messaging.Producer 'E165E360-52DD-FAAE-8688-C86B4A89A006' producer acknowledge of 'C56EE3C5-CFFB-55CD-19EA-C86B8D7365FF'.
16:32:54.903 [ERROR] mx.messaging.Producer 'E165E360-52DD-FAAE-8688-C86B4A89A006' producer fault for 'C56EE3C5-CFFB-55CD-19EA-C86B8D7365FF'.
16:32:54.904 [ERROR] main PackageSession (accesscode 'AccessCode20388909') validation failed: faultCode:Channel.Security.Error faultString:'Security error accessing url' faultDetail:'Destination: DefaultHTTP'

Почему произошла ошибка производителя?

...