0

.Net 3.5に、次のようなHelloWorld()のメソッドがある単純なWebサービスがあります。

[WebMethod(EnableSession=true)]
public string HelloWorld() {
    if (Session["Count"] == null) { Session["Count"] = 1; }
    Session["Count"] = Convert.ToInt32(Session["Count"]) + 1;
    return "Hello World " + Session["Count"];
}

これはASP.NETWebブラウザーとIISで機能し、出力を返すのはHello World 1, 2, 3, 4 and soon....、開いているページまたは更新されているページの量によって異なります。

プロジェクトの要件に従ってしばらくして、私はSOAPUIツール(Webサービスのテスト用)を使用しました。
SOAPUIで新しいプロジェクトを作成し、次のようなサービスのURLを挿入します。 http://www.myservices/service.asmx?wsdl

SOAPUIには同じ名前のメソッドがありますが、実行すると、新しいセッションを作成するたびに開きます。Hello World 1, 1, 1, 1これは、セッションを維持するのではなく、常に私を返すことを意味します。

ただし、サービスのテストのためにセッションを維持する必要があります。
ありがとうございました。

4

2 に答える 2

0

Wiktor Zychla、ご協力いただきありがとうございます。最後に、SOAPUIでセッションを処理する方法を見つけました。

testCaseにリクエストを追加し、HTTPテストリクエストを追加する必要があります。[HTTPセッションを維持する]オプションもオンにします。参照:http://beforedikshaforgets.blogspot.com/2011/08/soap-ui-creating-test-case.html

さらに、私の理解によれば、SOAPUI 4.0にはバグがあるので、セッションを維持するためにサービスをSOAOUI4.5にシフトします

于 2012-08-26T20:13:40.900 に答える
0

セッションを維持するには、クライアント側でCookieをサポートする必要があります。ほとんどの場合、クライアントでCookieが無効になっています。Fiddlerなどのhttpデバッガーを使用すると、2つのリクエストを投稿して、最初のリクエスト(Cookieを設定する必要があります)と2番目のリクエスト(Cookieを保持する必要があります)の応答を確認するだけで簡単に確認できます。

于 2012-08-25T09:23:52.537 に答える