2013-12-11 274 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>