Hej! Kolla i klassen som innehåller BeginupdateUsers() och updateUsers() och se om klassen har ett attribut i stil medProblem med MessageName i asmx WebService
Jag jobbar i ett projekt som skapar en webserver som i sin tur anropar en annan webserver från en extern leverantör. Vi har fått en wsdl-fil och mha wsdl.exe skapat en proxyklass. I vår asmx.cs-klass instaniserar vi proxyklassen och skapar webmethods som anropar proxyns motsvarande metoder. När vi testkör projektet visas meddelandet:
"Både System.IAsyncResult BeginupdateUsers(updateUsers, System.AsyncCallback, System.Object) och updateUsersResponse updateUsers(updateUsers) använder meddelandenamnet updateUsers. Använd egenskapen MessageName för det anpassade attributet WebMethod för att ange unika meddelandenamn för metoderna."
Jag försöker ändra MessageName för de båda metoderna (BeginupdateUsers och updateUsers) så här:
[WebMethod(MessageName = "BeginupdateUsers")]
public IAsyncResult BeginupdateUsers(global::updateUsers updateUsers1, AsyncCallback callback, object asyncState)
{
return myService.BeginupdateUsers(updateUsers1, callback, asyncState);
}
[WebMethod(MessageName = "updateUsers")]
public updateUsersResponse updateUsers(global::updateUsers updateUsers1)
{
return myService.updateUsers(updateUsers1);
}
Då få jag det här meddelandet:
"Tjänsten HSAConnect.HSAConnectService följer inte standarden WS-I Basic Profile v1.1. Granska alla överträdelser av normativa åtgärdssatser nedan. Om du vill inaktivera varningarna anger du WsiClaims.None för egenskapen ConformanceClaims i motsvarande WebServiceBinding-attribut.
R2304: Överlagringar av åtgärdsnamn i ett wsdl:portType-element tillåts inte i Basic Profile. Ett wsdl:portType-element i en beskrivning måste innehålla åtgärder med distinkta värden för dess namnattribut. Observera att det här kravet endast gäller wsdl:operations i ett givet wsdl:portType-element. Ett wsdl:portType-element kan innehålla wsdl:operations med samma namn som i andra wsdl:portType-element.
- Åtgärden updateUsers i portType HSAConnectServiceSoap från namnområde http://tempuri.org/.
Om du vill att tjänsten ska följa aktuell standard kontrollerar du att alla webbmetoder som tillhör samma bindning har unika namn."
Hur kan jag komma vidare? Är det enklare att använda WCF istället för asmx? /Mvh GöranSv: Problem med MessageName i asmx WebService
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
class HSAConnectService
Testa i så fall att ändra till
[WebServiceBinding(ConformsTo = WsiProfiles.None)]
class HSAConnectService