5

VS2010 で Web サービスを作成しようとしており、3.5 Framework Web サービス プロジェクトとして実行しています。

そこにはデフォルトの Hello World メソッドがあり、いくつか追加しました。私が追加したものには、データセットに接続するデータ プロバイダー クラスへの呼び出しがあります。ただし、ローカルで実行すると、Hello World メソッドのみが表示され、新しいメソッドは表示されません。次に、hello world メソッドを削除して再実行しますが、まだ表示されます。

これをローカルで実行するには何をする必要がありますか? また、ステージング サーバーと運用サーバーで実行するのと同じプロセスですか?

私は 1.1 でサービスを作成することに慣れていて、これが 3.5 で作成する最初のサービスです。

4

2 に答える 2

5

「表示されない」とは、Web サービスの Web サイトを実行して .asmx ページに移動したときに、このスクリーンショットに示すように、使用可能なサービス呼び出しのリストにメソッドが表示されないことを意味していると思います。

ここに画像の説明を入力

そういうことなら……。

ほとんどの場合[WebMethod()]、関数定義の直前に宣言がないか、メソッドが public として宣言されていません。

例:

[WebMethod()]
public string GetName(int EmployeeNumber)
{
   // some code to get name from emplyee #
   return ReturnValue;
}

Web サービス プロジェクトをローカルで実行すると表示されるはずです。

これらのどちらもありません:

public string GetName(int EmployeeNumber)
{
   // some code to get name from employee #
   return ReturnValue;
}

また

[WebMethod()]
private string GetName(int EmployeeNumber)
{
   // some code to get name from employee #
   return ReturnValue;
}

さらに、HelloWorld メソッドを削除したときにメソッドが表示される理由は、メソッドだけを削除して[WebMethod()]宣言を残しているためだと思います。[WebMethod()]これにより、おそらく宣言後の最初の関数であるため、宣言が関数に適用されるようにコードが変更されます。

于 2012-12-28T17:32:36.527 に答える
0

関数が静的に宣言されているかどうかを確認しますか? したがって、次の状況では [WebMethod()] でも機能しません。

[WebMethod()]
public static string GetName(int EmployeeNumber)
{
 // some code to get name from employee #
return ReturnValue;
}

静電気を除去すると動作します!!

于 2014-01-15T10:23:26.203 に答える