متاسفانه، در هنگام فراخوانی متد SaveIdentity برای ثبت یک Identity جدید (از نوع PersonInfo) با خطای DeserializationFailed مواجه میشوم. این خطا به طور مداوم رخ میدهد و مانع از تکمیل فرآیند ثبت اطلاعات میگردد.
شرح دقیق مشکل:
پس از بررسی دقیق فایل WSDL و مستندات مربوطه، اطمینان حاصل نمودهام که ساختار درخواست XML ارسالی با نوع داده PersonInfo مطابقت کامل دارد. همچنین، جهت اطمینان بیشتر، اقدام به ارسال درخواست به صورت دستی (بدون استفاده از کتابخانههای SOAP) با استفاده از متد cURL نمودهام. با این حال، همچنان خطای DeserializationFailed دریافت میشود.
متن خطا:
delphi
The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:identity. The InnerException message was 'Error in line 7 position 194. Element 'http://tempuri.org/:identity' contains data from a type that maps to the name 'http://schemas.datacontract.org/2004/07/Pardik.CRM.Service.Contract.Model.Identity:PersonInfo'. The deserializer has no knowledge of any type that maps to this name. Consider using a DataContractResolver if you are using DataContractSerializer or add the type corresponding to 'PersonInfo' to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding it to the list of known types passed to the serializer.'. Please see InnerException for more details.
تحلیل و بررسیهای انجام شده:
با توجه به ماهیت خطای DeserializationFailed و بررسیهای انجام شده، به نظر میرسد که مشکل از عدم پیکربندی صحیح سمت سرور ناشی میشود. به طور خاص، احتمالاً نوع داده PersonInfo به عنوان یک KnownType در تنظیمات سرویس WCF ثبت نشده است. این امر باعث میشود که Deserializer در هنگام دریافت درخواست، قادر به شناسایی و پردازش نوع داده PersonInfo نباشد.
درخواست:
خواهشمند است نسبت به بررسی دقیق پیکربندی سرویس WCF در سمت سرور اقدام نموده و اطمینان حاصل فرمایید که نوع داده PersonInfo (و احتمالاً سایر انواع داده مرتبط) به درستی به عنوان KnownType ثبت شدهاند. همچنین، بررسی ارجاعات اسمبلی (assembly references) مربوط به تعریف نوع PersonInfo در پروژه WCF نیز توصیه میگردد.
در صورت نیاز به اطلاعات بیشتر، مستندات مربوط به فرآیند یکپارچهسازی و نمونه کدهای مورد استفاده در سمت کلاینت (شامل درخواست XML ارسالی) قابل ارائه میباشند.
با تشکر از همکاری و توجه شما.
@miladzamani215
با سلام و احترام
لطفا نمونه کد خود را برای بررسی ارسال کنید.