2013-12-11 269 views
0

我有一個簡單的web服務(asmx)。我說簡單,因爲在排除故障的過程中,我逐字刪除了除「Return」語句之外的每行代碼。該服務不得不做任何事情,但得到請求並返回一個字符串。Asmx web服務500錯誤

我已經試過3種或4個不同的調用Web服務,並在每次返回一個錯誤時間的方法:500錯誤內部服務器錯誤

如果我去我的瀏覽器中的服務URL它加載只是罰款和表演我的方法,索取樣品等

這裏是我的web服務

<WebService(Namespace:="http://tempuri.org/")> _ 
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ 
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ 
Public Class CalendarSyncService 
Inherits System.Web.Services.WebService 

<WebMethod()> _ 
Public Function SendXml(ByVal cBody As String) As String 

    Return "Test" 
End Function 

End Class 

的代碼頁永遠不會記錄任何錯誤,並在瀏覽器中,所以我有一個很難故障排除它的工作原理。是否有一個原因,它會在瀏覽器中工作,但通過httprequest,webrequest,soap等方式調用時會給我一個500錯誤?

回答

0

運行Fiddler並檢查您的調用,以瞭解當您在瀏覽器中調用它時與在以編程方式調用它時有什麼不同。

+0

感謝您的幫助。你能指出什麼類型的東西我應該尋找錯誤去?我注意到一個區別。通過瀏覽器導航到asmx時,應用程序顯示POST時在標題中顯示GET。這可能是問題嗎?我真的不認爲在我的代碼中使用GET是可行的,因爲我的目標是上傳大型xml文件 – Chris2222000

+0

您可能需要在web.config中啓用HttpPost:http://support.microsoft.com/kb/ 819267。你使用500的錯誤是什麼? – FarmerBob

1

我有一個類似的問題,其中web服務在本地服務器上正常運行,但在託管服務器上返回500內部錯誤。 只需將它添加到您的web.config中

<configuration> 
    <system.web> 
    <webServices> 
     <protocols> 
      <add name="HttpGet"/> 
      <add name="HttpPost"/> 
     </protocols> 
    </webServices> 
    </system.web> 
</configuration>