.NET Webservice一半工作,一半404

时间:2009-05-26 17:28:06

标签: .net web-services windows-services

我在Windows Server2003 R2计算机上运行作为Windows服务的.NET Web服务。我有一个单独的.NET / C#2.0应用程序运行,从LAN上的其他地方调用此Web服务。 Web服务有两种方法 - 其中一种方法调用完美无瑕。但是,另一种方法始终返回404“未找到”错误。我可以访问webservice URL并查看这两种方法。我在我的项目上做了一个“更新网络参考”,结果很好。生成的Web代理看到方法很好。但是它在运行时从不起作用,而它的兄弟姐妹工作得很好。

服务配置文件中没有Web设置 - 只是标准连接字符串和少数appSettings。

究竟是什么导致1方法到404,而另一种方法可以正常工作?

编辑:webservice和调用代码都是.NET 2.0,C#。这是 WCF,只是旧学校的“网络参考”。实际上,它基于System.Web.Services.Protocols.SoapHttpClientProtocol而不是Microsoft.Web.Services3.WebServicesClientProtocol。

我已经确认没有动态设置webservice url。

2 个答案:

答案 0 :(得分:0)

你没有说你正在使用什么技术,所以我假设它是WCF。你没有说你在服务端使用的是什么版本的.NET,所以我假设是.NET 3.5 SP1。

我建议你仔细观察。特别是,打开跟踪,看看它有什么说法。是否收到了请求?在什么时候生成响应?也许找到了服务,但是SOAP“action”出了问题,所以第二次操作真的没找到。请记住,您在Web代理中看到的内容与Web代理实际请求的内容不同。它应该,但可能不是。打开跟踪并找出答案。

您还可以考虑调试服务,以查看是否已达到该操作。操作中的异常可能正在被翻译成404?

另外,查看事件日志,看看是否还有其他任何有趣的事情发生在同一时间。

答案 1 :(得分:0)

有些代码可以帮助我们更好地理解您的问题。我可以问一下,调用webservice的应用程序是Web应用程序还是桌面应用程序还是Windows服务?

如果它是一个Web应用程序,一个建议是手动调用webservice并运行fiddler或firebug以查看服务器响应以及正在传递和返回的数据。这可能是解决问题的起点。