1

スクリプト タスクのエントリ ポイント メソッドに次のコードを記述して、Java ベースの Web サービス メソッドを呼び出そうとしています。次のコードは、コンソール アプリケーションから呼び出すと正しく実行されますが、SSIS 制御フローから呼び出している間、メッセージ ボックス 1 までは正しく実行されますが、webRequest.GetResponse() を実行すると、エラーが発生することも、次のコード行を実行することもわかりません。 .

    public void Main()
    {
        string envelopeContent = GetSoapEvvelope();
        XmlDocument soapEnvelopeXml = new XmlDocument();
        soapEnvelopeXml.LoadXml(envelopeContent);
        HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(_url);
        webRequest.Method = "POST"; // get executed
        soapEnvelopeXml.Save(webRequest.GetRequestStream());
        MessageBox.Show("1"); 
        WebResponse response = webRequest.GetResponse();
        MessageBox.Show("2"); // does not get executed
        string responseString = string.Empty;
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            responseString = reader.ReadToEnd();
        }

        XmlDocument doc = new XmlDocument();
        doc.LoadXml(responseString);
        XmlNode node = doc.SelectSingleNode("//*[local-name()='result']");
       }

何をすべきか教えてください。私の理解によると、Web サービス タスクには WSDL/proxy が必要です。リクエストで SOAP エンベロープを渡す Java ベース Web サービスを呼び出す他の方法はありますか?

ありがとう

@ポール

4

1 に答える 1

1

SQL Server 2008 R2 を使用しているときにこれを経験しました。今、私はSQL Server 2012で同じソリューションを試しましたが、変更を加えなくても問題なく動作しています。

于 2014-12-01T16:44:52.033 に答える