ASMX Web服务“服务器无法识别HTTP标头SOAPAction的值”

时间:2014-12-15 19:22:15

标签: asp.net web-services soap asmx

只有在测试服务器上部署ASMX Web服务时,我才会遇到一个奇怪的问题。我有一个简单方法的Web服务:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class HarmonyCentralWebClassicService : System.Web.Services.WebService
{
        [WebMethod]
        public List<DeviceSync> GetDeviceSyncByCategoryAndSyncStatus(DeviceSyncCategoryId categoryId, DeviceSyncStatusId syncStatusId)
        {
           // Do something and return a list
           return new List<DeviceSync>();
        }
 }

部署到测试服务器后,当我从另一台机器上的.NET客户端调用此方法时,出现以下错误:

  

引发的抓住SoapException   System.Web.Services.Protocols :: SoapHttpClientProtocol.ReadResponse

     

服务器无法识别HTTP标头SOAPAction的值:   http://tempri.org/GetDeviceSyncByCategoryAndSyncStatus

我看过很多SO文章并尝试删除临时ASP Net文件夹并更新网络参考 - 这些都不起作用(例如这些here)。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:5)

管理以找出问题所在。很简单的解决方案如果你在几个小时后回来,你就会更明智地思考!

我的客户端app.config指向错误的ASMX文件,因此显然运行时正确地发现该特定Web服务无法识别此操作。

如果有人遇到类似的问题,一个非常简单的检查是确保您实际指向所需的ASMX Web服务,并且您的客户端中的Web引用是最新的。

当然,同意John的评论 - 如果您有选择,请坚持使用WCF或ASP.NET Web API。