3

私はWebサービスを初めて使用します。Visual Web Developer 2010 Expressで新しいWebサイトを作成し、サイトの.asmxページにサービス参照を追加して、BBImportLeadという名前空間を指定しました。

最終的には、PICK / Universeデータベースから1つのXMLファイルに複数の顧客をロードし、ASP.NETを介してxmlファイルから各タグ(FName、LNameなど)のInnerText文字列を取得し、SOAPを介して文字列をWebサービスを使用して、結果をユーザーに表示します(現時点ではラベルで表示されますが、将来的には、正常に送信された場合にxmlファイルを削除するなどのアクションが実行される可能性があります)。

VBとC#を使用してさまざまな例を試しましたが、機能しません。VBを使用して、この例に非常に近づくことができたようです: http ://www.asp.net/web-forms/videos/building-35-applications/an-introduction-to-soap-based-web- services-with-visual-web-developer-2008

これは私のDefault.aspx.vbコードビハインドです。私の目標は、作成したラベルにWebサービスからの文字列応答を表示することです。

    Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        Dim BBImportLeadService As New BBImportLead.BBCallDataSoapClient

        Dim doc As New System.Xml.XmlDocument
        doc.Load("bborder.xml")

        Dim AuthenHead = doc.GetElementsByTagName("AuthenHead")
        Dim FName = doc.GetElementsByTagName("FName").ToString
        Dim LName = doc.GetElementsByTagName("LName").ToString



        Label1.Text = BBImportLeadService.ImportLead(AuthenHead:=AuthenHead, FName:=FName, LName:=LName)


    End Sub
End Class

私が得ているエラーは、文字列ではないため、AuthenHead変数に関するものです。これはtns値ですが、doc.GetElementsByTagNameを使用して、サービスが要求しているものに変換する方法がわかりません。

エラー1タイプ「System.Xml.XmlNodeList」の値を「BBImportLead.AuthenHead」に変換できません

誰かが私を正しい方向に向けることができますか?そのtnsエラーを修正する方法と、これが機能するように見える場合はどうすればよいですか?


更新:C#を試行するためのこの新しいコードを見つけました。これはうまくいくでしょうか?何かを送信して応答を受け取っているようですが、Webサービスが応答を受け取るためのユーザー名とパスワードがありません。また、xmlデータを取得するためにWebサービスの特定の関数を呼び出す場所もわかりません。

string data = "bborder.xml";
        string url = "urltakenoutforexample";
        string servresponse = "the response from the server";

        // build request objects to pass the data/xml to the server
        byte[] buffer = Encoding.ASCII.GetBytes(data);
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
        request.Method = "POST";
        request.ContentType = "application/soap+xml";
        request.ContentLength = buffer.Length;
        Stream post = request.GetRequestStream();

        // post data and close connection
        post.Write(buffer, 0, buffer.Length);
        post.Close();

        // build response object
        HttpWebResponse response = request.GetResponse() as HttpWebResponse;
        Stream responsedata = response.GetResponseStream();
        StreamReader responsereader = new StreamReader(responsedata);
        servresponse = responsereader.ReadToEnd();

        lbNodes.Items.Add(servresponse);
4

1 に答える 1

0

まず第一に、Web サイト「プロジェクト」を使用しないことを強くお勧めします。これは単純なサイトにのみ適しています。Web サービスを使用している場合、私はあなたのサイトを「シンプル」とは呼びません。

次に、ASMX サービスをまったく使用しないでください。これは、新しい開発に使用すべきではないレガシー テクノロジです。すべての新規開発には WCF を使用する必要があります。

http://asp.netにコメントを残して、古いビデオを削除してほしいとお願いしました。それはあなたを間違った道に送りました。

于 2012-02-09T20:40:00.797 に答える