0

ページ内にFlexアプリケーションが埋め込まれている.netWebアプリケーションがあります。このフレックスアプリケーションは、.netWebサービスを呼び出します。デバッガーを介して実行プロセスを追跡でき、応答が得られるまですべてが見栄えがします。




soap:ReceiverSystem.Web.Services.Protocols.SoapException: Server was unable to process request

. ---> System.Xml.XmlException: Root element is missing.

   at System.Xml.XmlTextReaderImpl.Throw(Exception e)

   at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)

   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()

   at System.Xml.XmlTextReaderImpl.Read()

   at System.Xml.XmlTextReader.Read()

   at System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.Read()

   at System.Xml.XmlReader.MoveToContent()

   at System.Web.Services.Protocols.SoapServerProtocol.SoapEnvelopeReader.MoveToContent()

   at System.Web.Services.Protocols.SoapServerProtocolHelper.GetRequestElement()

   at System.Web.Services.Protocols.Soap12ServerProtocolHelper.RouteRequest()

   at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest(SoapServerMessage message)

   at System.Web.Services.Protocols.SoapServerProtocol.Initialize()

   at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest

 request, HttpResponse response, Boolean& abortProcessing)

   --- End of inner exception stack trace ---

flexからの呼び出しは良さそうですが、Webサービスを介した実行は良好ですが、これは私がwiresharkを介してキャプチャした応答です。ここで何が起こっているのでしょうか。

「HelloWorld」からパラメータ化されたメソッドまで、いくつかのWebメソッドを試しました...すべて同じ応答でカムバックします...

「---&gt」を使用したエンコーディングと関係があるのではないかと思いましたが、.netが応答としてレンダリングするものを制御する方法がわかりません。

4

3 に答える 3

1

最近、Flexアプリを使用して使用した.NETRESTインターフェイスを使用しました。いくつかの奇妙な例外も発生しました。私の問題は、リクエストを送信するときにルート要素のxmlns(名前空間)に含めるのを忘れていたことです。これは大げさな推測ですが、お役に立てば幸いです。

于 2008-09-28T05:04:59.060 に答える
1

不適切な形式の XML ドキュメントをサービスに送信しているようです。Fiddler などを使用して、Web サービスへの実際の呼び出しのコピーを取得できますか? それは、問題が何であるかを理解する上で大きな助けになるでしょう。

于 2008-08-18T22:07:24.877 に答える
0

Are you using Flex 3? If so, you can set a breakpoint when the webservice is executed and actually step through the Flex framework as it encodes your request. Look in mx.rpc.soap.SoapEncoder and you'll be able to see exactly what is going to be sent over the wire.

于 2008-09-17T00:47:15.390 に答える