ورود

View Full Version : در یافت ارور Microsoft MSXML is not installed



hp1361
سه شنبه 16 مهر 1392, 17:04 عصر
با سلام

من یه پروژه ساده درست کردم که به یک وب سرویس وصل بشه و اطلاعاتی رو بگیره.

وقتی بر روی دکمه واقع بر روی فرم بروزر در زمان اجرا کلیک میکنم تا نتیجه رو نشون بده پیغام خطای زیر نمایش داده میشه


Microsoft MSXML is not installed

مشکل از کجاست؟

ممنون

gholami146
پنج شنبه 09 آبان 1392, 17:54 عصر
این دو سایت رو بررسی کنید احتمالا به جواب می رسید (مخصوصا اولین سایت) که میگه Add a call to CoInitialize(nil) in the app's initialization. Both versions then work fine.


http://qc.embarcadero.com/wc/qcmain.aspx?d=108838
https://forums.embarcadero.com/thread.jspa?threadID=78702

hp1361
پنج شنبه 09 آبان 1392, 19:32 عصر
سلام

این تاپیک ها رو قبلا خونده بودم اما نمیدونم این CoInitialize(nil) زو کجا باید بنویسم؟!

الان منزل هستم و به وب سرویس دسترسی ندارم. آیا

set the property ComInitialization in the ServerController

همین کار رو انجام نمیده؟

gholami146
جمعه 10 آبان 1392, 12:28 عصر
شما باید قبل از فرا خوانی دستورات این تابع رو فراخوانی کنید این دستور چیزی شبیه به کرییت هست

FastCode
جمعه 10 آبان 1392, 12:35 عصر
حالا اصلا MSXML رو نصب کردید یا نه؟
از ورژن ۶ شروع کنید و برید بالا تا کار کنه.نمیدونم الان ورژن چندش اومده.فکر میکنم آخریش ۸ باشه.

hp1361
جمعه 10 آبان 1392, 16:01 عصر
سلام.

فقط نسخه آخرشو دانلود کردم و تست کردم که نشد.

حالا فرا دستوری که دوستمون گفتن تست میکنم نتیجشو اینجا مینویسم

hp1361
شنبه 11 آبان 1392, 09:33 صبح
سلام.

پروپرتی که در بالا بهش اشاره کردم "ComInitialization " رو به "ciNormal" تنظیم کردم و به درستی کار کرد!

البته دستور "CoInitialize(nil)" رو هم تست کردم اما نمی شناخت و نمی دونستم کدوم یونیت رو باید اضافه کنم پس بی خیالش شدم.

ممنون از پاسخ دوستان

homatorabi
چهارشنبه 03 خرداد 1396, 16:20 عصر
سلام
دوست عزیز منم هم به همین مشکل برخورد کردم در نوشتن سرویس و ارتباط با وب سرویس
ولی
ComInitialization هر چی گشتم متوجه نشدم شما این Property رو در کجا set کردید و نتیجه گرفتید ؟
ممنون میشم بگی از کجا set کنم

hp1361
شنبه 06 خرداد 1396, 00:39 صبح
سلام
دوست عزیز منم هم به همین مشکل برخورد کردم در نوشتن سرویس و ارتباط با وب سرویس
ولی
ComInitialization هر چی گشتم متوجه نشدم شما این Property رو در کجا set کردید و نتیجه گرفتید ؟
ممنون میشم بگی از کجا set کنم

سلام

من توی اون پروژه(که یک پروژه ساده بود) از اینتراوب استفاده کرده بودم

Mahmood_M
شنبه 06 خرداد 1396, 10:52 صبح
برای برخی عملیات مثل ارتباط با بانک اطلاعاتی توسط ADO یا پردازش فایلهای XML با MSXML ، برنامه از رابط COM ویندوز استفاده می کنه
هر Thread به صورت جداگانه باید رابط COM رو فراخوانی کنه، در یک برنامه تحت ویندوز، برای Thread اصلی برنامه به صورت پیشفرض یک بار رابط COM فراخوانی میشه اما اگر درون برنامه Thread دیگه ای بسازید و در اون نیاز به استفاده از رابط COM داشته باشید، در شروع کار اون Thread باید تابع CoInitialize رو فراخوانی کنید تا رابط COM فراخوانی بشه
برای پروژه تحت وب مثل Intraweb به صورت پیشفرض رابط COM فراخوانی نمیشه ، با تنظیم ComInitialization برای سرور میتونید تنظیم کنید که رابط COM برای Thread اصلی یا سایر Thread های برنامه فراخوانی بشه اما در صورتی که خودتون Thread حدیدی بسازید باز باید دستور CoInitialize رو فراخوانی کنید و در پایان کار هم با دستور CoUnInitialize اون رو آزاد کنید


Uses
ComObj;

...

CoInitialize(nil);
try
...
finally
CoUnInitialize;
end;

moj127
سه شنبه 26 تیر 1397, 12:43 عصر
سلام.

پروپرتی که در بالا بهش اشاره کردم "ComInitialization " رو به "ciNormal" تنظیم کردم و به درستی کار کرد!

البته دستور "CoInitialize(nil)" رو هم تست کردم اما نمی شناخت و نمی دونستم کدوم یونیت رو باید اضافه کنم پس بی خیالش شدم.

ممنون از پاسخ دوستان

بنده هم همین کارو کردم و درست شد.
ممنون از لطف شما و دوستان