Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 16868|Atsakyti: 0

[WCF / Web Servics] Operacijos 'xxx' nepavyko įkelti, nes ji turi parametrą arba retu...

[Kopijuoti nuorodą]
Paskelbta 2016-07-20 10:59:59 | | |
Operacijos 'xxx' įkelti nepavyko, nes jos parametras arba grąžinimo tipas yra System.ServiceModel.Channels.Message arba tipas, turintis MessageContractAttribute ir kitus parametrus įvairių tipų. Naudojant System.ServiceModel.Channels.Message arba tipus su MessageContractAttribute, metodas neturi naudoti jokių kitų tipų parametrų.

Aš parašiau sąsają įkelti failus į WCF ir noriu grąžinti įkėlimo rezultatą, sąsaja yra tokia:



Šiuo metu paleidimas praneš apie klaidą, jei ji parašyta taip:



Apie klaidas taip pat bus pranešta veikiant!!!

Kaip minėjome anksčiau, kas yra dvipusis, yra pirmyn ir atgal, tiesa? Taip, aukščiau pateiktas metodas turi gaunamus parametrus ir grąžinimo reikšmes, yra atvykimų ir išėjimų, jis yra dvipusis, kodėl gi ne?

Haha, problema ta, kad mes naudojame pranešimo protokolą, pagal šią prielaidą, mūsų metodas negali būti apibrėžtas atsitiktinai, naudojant pranešimo protokolo metodą, jei:

a. Jei pranešimo sutartis naudojama kaip gaunamas parametras, gali būti tik vienas parametras, o šie apibrėžimai yra neteisingi:

void Reconcile(BankingTransaction bt1, BankingTransaction bt2);

b. Jei negrąžinsite negaliojančios, jei ne, turite grąžinti pranešimo sutartį, bool UpLoadFile(TransferFileMessage tMsg) Mūsų apibrėžimas akivaizdžiai neatitinka reikalavimų.

Taigi, kaip tai išspręsti? Turime apibrėžti kitą pranešimo grąžinimo sutartį.


Grubiai tariant, jūs negalite naudoti bool, string, ir tt kaip grąžinamos reikšmės, galite nustatyti void no grąžinamos vertės tipą.

Tačiau įdomu, ką daryti, jei yra grąžos vertė???? Sprendimas yra toks:









Ankstesnis:WCF klaida: 413 užklausos objektas per didelis
Kitą:WCF diegimo failo įkėlimas turi grąžinamąją vertę demonstraciniam atsisiuntimui
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com