2012-03-30 107 views
0

我創建了一個web方法,但是當我去該網站並輸入例如http://mysite.com/services/Amounts/GetAmount時,它返回一個錯誤Internal Server Error 500。在事件日誌等調查問題後,它說GetAmount無效的方法名稱。但是我知道MAME是罰款無效的Webmethod名稱

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

什麼是我要看看,當這種類型的錯誤顯示?我查了所有引用,一切都正常名爲「GetAmount」可能存在的問題。

+0

你有沒有仔細看看'protocols'部分中的web.config? – 2012-03-30 03:50:34

+0

這是代碼背後的web服務或webmethod?如果其代碼後面的webmethod需要將該方法定義爲靜態。 – Mutant 2012-03-30 03:52:13

+0

嘗試將返回值存儲在變量中,然後顯示在列表框或其他內容中以及何時進行此調用:http://mysite.com/services/Amounts/GetAmount ....爲什麼不是值amts未通過或者在通話中提供?可能是因爲它發現與方法的簽名不匹配。儘管我不知道如何在客戶端實現它:) – Milee 2012-03-30 04:54:00

回答

0

你在這裏做什麼?你需要發佈更多的代碼和web.config。您在此使用的是哪個版本的.NET?所有這些信息都可能爲您提供更好的答案。

首先,您的網址http://mysite.com/services/Amounts/GetAmount似乎不正確 - 除非您使用ASP.NET路由或某些網址重寫,否則必須有.asmx

假設你的路由/重寫確實是正常工作:一般 ,如果它是一個正常的(SOAP)的Web服務,然後啓用HTTP GET -

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

如果你想創建可調用服務從腳本(ScriptService)然後對於asmx服務,您需要將方法標記爲ScriptService,您可能需要根據.NET版本調整web.config。你也需要啓用HTTP GET - 例如,

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

您可能還需要調整Response Format U是否希望JSON或XML。

+0

這是事情,有像/ Amounts/InsertProductAmount這樣的其他服務的作品,就像如果你鍵入該網址它不會返回它只是說錯誤..「數組索引」或什麼..但那就行了..因爲我知道一個人在實際上有人通過JSON時會工作。我正在使用Visual Studio 2008 .Net Framework 3.5 – user710502 2012-03-30 05:58:47

+0

@ user710502,應用於針對'GetAmount'方法的方法的屬性是什麼?還要檢查路由的代碼 - 在代碼中可能存在問題! – VinayC 2012-03-30 06:10:13