2012-03-30 10 views
0

Webメソッドを作成しましたが、サイトにアクセスしてhttp://mysite.com/services/Amounts/GetAmountと入力すると、エラーInternal Server Error 500が返されます。イベントログなどの問題を調査した後、GetAmountメソッド名が無効です。しかし、私はMAMEが無効なWebメソッド名

[WebMethod(EnableSession=true)] 
public string GetAmount(Amounts amts) 
{ 
    //some logic here to add to the database. 
} 

大丈夫です知っている私は、このタイプのエラーは、私はすべての参照をチェックし、すべてが「GetAmount」適切に命名された?,示したときに見ている可能性の問題は何ですか。

+0

「プロトコル」セクションでweb.configをよく見ましたか? –

+0

コードの中にwebserviceまたはwebmethodがありますか?あなたの背後にあるコードのwebmethodが静的メソッドを定義する必要がある場合。 – Mutant

+0

戻り値を変数に格納し、リストボックスなどで表示してみてください。http://mysite.com/services/Amounts/GetAmount ...この値を渡さないのはなぜですか?コールに沿って、または提供されていますか?あなたがクライアント側でそれをどのように実装しているのかわからないのですが: – Milee

答えて

0

ここで何をしようとしていますか?より多くのコードとweb.configを投稿する必要があります。ここで使用している.NETのバージョンは?このすべての情報があなたに良い答えを与えるかもしれません。

最初に、あなたのURL http://mysite.com/services/Amounts/GetAmountは正しいようではありません - あなたはASP.NETルーティングまたはいくつかのURLの書き換えを使用していない限り、どこかに.asmxどこかにある必要があります。あなたが呼び出し可能なサービスを作成しようとしている場合

<webServices> 
    <protocols> 
     <add name="HttpGet" /> 
     <add name="HttpPost" /> 
    </protocols> 
</webServices> 

- ノーマル(SOAP)Webサービスがその後、HTTP GETを有効にするその場合、 を一般的に:

あなたのルーティング/再書き込みが実際に正しく動作していると仮定すると、スクリプト(ScriptService)からasmxサービスの場合は、メソッドをScriptServiceとマークする必要があり、.NETバージョンに基づいてweb.configを調整する必要があります。また、あなたがHTTP GETを有効にする必要があります - 例えば、

[ScriptMethod(UseHttpGet = true)] 
public string GetAmount(Amounts amts) 

はまた、uはJSONまたはXMLをしたいかどうかResponse Formatを調整する必要があります。

+0

これは、/ Amounts/InsertProductAmountのような他のサービスがあり、そのURLを入力すると、単に「配列のインデックス」などのエラーを返さないようです。実際に誰かがJSONを渡しているときに動作することがわかっているからです。私はVisual Studio 2008を使用しています.Net Framework 3.5 – user710502

+0

@ user710502、 'GetAmount'メソッドに対して動作するメソッドに適用される属性は何ですか?また、ルーティングしているコードをチェックしてください - そのコードに問題があるかもしれません! – VinayC