Service Web ASMX “Serveur ne reconnaît pas la valeur de l'en-Tête HTTP SOAPAction”
J'ai un problème étrange qui se passe uniquement lors du déploiement d'un service web ASMX sur le serveur de test. J'ai un service web avec une méthode simple:
[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>();
}
}
Après le déploiement sur un serveur de test, quand j'ai appeler cette méthode à partir d'un .NET client sur une autre machine, j'obtiens l'erreur suivante:
Pris SoapException jetés par
Système.Web.Services.Protocoles::SoapHttpClientProtocol.ReadResponseServeur ne reconnaît pas la valeur de l'en-Tête HTTP SOAPAction:
http://tempri.org/GetDeviceSyncByCategoryAndSyncStatus
J'ai vu de nombreux articles et essayé de supprimer Temporairement ASP Net des dossiers et la mise à jour de la référence web - ceux-ci n'ont pas de travail (tels que ces ici).
Quelqu'un a une idée?
- Aucune idée, mais pour info, ASMX est un héritage de la technologie, et ne doit pas être utilisé pour un nouveau développement. WCF ou ASP.NET l'API Web doit être utilisé pour tout nouveau développement de web service clients et les serveurs. Un petit conseil: Microsoft a pris sa retraite de la ASMX Forum sur le site MSDN.
- Oui, vous avez absolument raison. J'ai dû prendre au cours de cette technologie, donc je suis obligé de l'utiliser au moins pour le court terme.
Vous devez vous connecter pour publier un commentaire.
Réussi à comprendre le problème. Solution très simple. Va juste pour montrer si vous revenez après quelques heures, vous pensez que plus de discernement!
Mon application client.config a été pointant vers le mauvais fichier ASMX et donc le moment de l'exécuter correctement observé que cette action n'a pas été reconnu par le service web.
Si quelqu'un est confronté à un problème similaire, une très simple de vérifier est de vous assurer que vous êtes réellement pointant vers le niveau souhaité service web ASMX et que votre site web les références de votre client sont à jour.
Bien sûr, d'accord avec Jean-commentaire - si vous avez le choix, bâton avec WCF ou ASP.NET l'API Web.