أكثر

إصلاح خطأ البرنامج النصي مؤشر غير صالح من أدوات المعالجة الجغرافية ArcGIS؟

إصلاح خطأ البرنامج النصي مؤشر غير صالح من أدوات المعالجة الجغرافية ArcGIS؟


أنا فقط أتعلم ArcGIS 10.2 وكان يعمل جيدًا حتى حاولت استخدام خيار التصدير إلى قاعدة بيانات جغرافية (فردية) لجدول dbs الذي قمت بإنشائه. منذ ذلك الحين ، يبدو أنني أحصل الآن على نفس خطأ البرنامج النصي لوظائف الاستيراد / التصدير. ومع ذلك ، حاولت فقط التصدير إلى قاعدة البيانات الجغرافية (متعددة) ولم يظهر الخطأ. لقد تحدثت مع الدعم الفني ولم يتمكنوا من مساعدتي حتى الآن. أنا حقًا لا أعرف الكثير عن نظم المعلومات الجغرافية ، لذا يصعب علي إصلاح هذه المشكلة ولا يمكنني متابعة بعض الأشياء.


لقد حللت هذه المشكلة للتو. ما عليك القيام به هو ما يلي: في Windows ، انتقل إلى: لوحة التحكم -> البرامج -> إلغاء تثبيت برنامج.

ثم انقر بزر الماوس الأيمن على "ArcGIS for Desktop" -> حدد "إلغاء التثبيت / التغيير".

سينبثق مربع حوار إعداد ArcGIS. اختر خيار "الإصلاح".

بعد الانتهاء من إجراءات الإصلاح ، سيعمل ArcGIS بشكل صحيح!


لقد قمت بحل هذا الخطأ عن طريق إصلاح توافق البيانات. التركيب. لدي أيضًا إيقاف تشغيل معالجة الخلفية.


2 إجابات 2

من الأفضل إجراء نسخ احتياطي لجدول الأقسام أولاً ، فقط في حالة عدم صحة التغييرات. ثم من الممكن استعادة جدول التقسيم القديم. إذا كان محرك الأقراص هو sda & amp ، فاحفظ في محرك أقراص آخر:

استخدم gdisk وتحقق من صحة الأقسام مع p ، واستخدم w لكتابة جدول الأقسام. إذا لم يكن صحيحًا فقط استخدم q للإقلاع عن التدخين. يجب أن يتم تحديث MBR الأساسي والنسخ الاحتياطي وأمبير الحماية.

b نسخ بيانات GPT احتياطيًا إلى ملف
ج تغيير اسم القسم
د حذف قسم
أعرض معلومات مفصلة عن القسم
ل قائمة أنواع الأقسام المعروفة
ن إضافة قسم جديد
o إنشاء جدول أقسام GUID فارغ جديد (GPT)
ص طباعة جدول التقسيم
q إنهاء دون حفظ التغييرات
r خيارات الاسترداد والتحول (الخبراء فقط)
أقسام الفرز
ر تغيير رمز نوع القسم
الخامس تحقق من القرص
ث اكتب الجدول على القرص والخروج
x وظائف إضافية (خبراء فقط)
؟ اطبع هذه القائمة

تأكد من رؤية التعليق أدناه بواسطة Rod Smith ، فهو مؤلف gdisk في موقع rodbooks الخاص به.


إصلاح أجهزة Windows التي لا يمكن أن تبدأ

عندما يواجه النظام مشاكل في البدء ، فقد يعرض رسائل خطأ عند بدء التشغيل. قد تأتي هذه الرسائل من BIOS النظام (ROM BIOS أو البرنامج الثابت UEFI) أو قد يتم إنشاؤها بواسطة Windows. تتضمن رسائل الخطأ النموذجية التي يعرضها BIOS ما يلي:

  • قرص نظام غير صالح
  • فشل التمهيد
  • خطأ في القرص الصلب
  • NT محمل التمهيد مفقود
  • خطا فى النظام

تشير هذه الرسائل والرسائل المماثلة إلى أن شريحة BIOS أو UEFI الثابتة على اللوحة الأم لا يمكنها تحديد موقع ملفات بدء التشغيل لنظام التشغيل الخاص بك. يمكن أن تشمل الأسباب المحتملة ما يلي:

  • يتم سرد محرك أقراص غير قابل للتمهيد يحتوي على وسائط أولاً في ترتيب التمهيد (BIOS / UEFI).
  • لم يتم تحديد محرك نظام الكمبيوتر & # 8217s بشكل صحيح (BIOS / UEFI).
  • كبلات البيانات أو الطاقة من القرص الصلب الداخلي إلى اللوحة الأم مفكوكة أو معطلة (الأجهزة).
  • فشل محرك الأقراص (الأجهزة).

يتم سرد هذه بترتيب الاحتمالية. كما هو الحال دائمًا ، ابدأ بأبسط الاحتمالات: لقد تركت محرك أقراص USB محمولاً متصلاً بجهاز الكمبيوتر الخاص بك.

فصل محركات أقراص USB

إذا تم تكوين نظامك لاستخدام محركات أقراص USB كأول جهاز قابل للتمهيد وتركت محرك أقراص فلاش USB غير قابل للتمهيد متصلاً بنظامك (إما مباشرة أو في محور USB متصل بالنظام الخاص بك) ، فإن نظامك سيفوز بالتمهيد # 8217t. المحلول؟ افصل محرك الأقراص وأعد تشغيل النظام.

إذا تمت إعادة تشغيل نظامك بشكل صحيح ، فلديك خياران:

  • لا تترك محركات أقراص USB المحمولة موصولة بالنظام عند إيقاف تشغيل الكمبيوتر.
  • قم بتغيير إعدادات BIOS أو UEFI الثابتة لتخطي محركات أقراص USB كأجهزة قابلة للتمهيد.

فحص وتغيير ترتيب تمهيد محرك الأقراص

هل يجب عليك تغيير ترتيب التمهيد؟ هذا يعتمد. يمكن تشغيل المزيد والمزيد من برامج التشخيص من محركات أقراص USB المحمولة القابلة للتمهيد ، ويمكنك أيضًا تثبيت أنظمة تشغيل جديدة من محركات أقراص USB المحمولة القابلة للتمهيد. ومع ذلك ، يمكنك أيضًا استخدام محرك أقراص DVD أو BD (Blu-ray) للنظام & # 8217s لهذه المهام. لذا ، الأمر متروك لك.

نوصي بتغيير ترتيب التمهيد على أجهزة الكمبيوتر التي تعمل بنظام Windows 7 إذا كان

  • يمكنك استخدام محركات أقراص USB المحمولة لتسريع نظامك باستخدام ميزة Windows ReadyBoost.
  • كثيرًا ما تستخدم محركات أقراص USB المحمولة لنقل المعلومات بين أجهزة الكمبيوتر.
  • كثيرًا ما تستخدم محركات أقراص USB المحمولة لأسباب أخرى.

ومع ذلك ، يجب ترك محركات أقراص USB المحمولة في الجزء العلوي من ترتيب التمهيد إذا كان

  • تقوم بشكل متكرر بتشغيل برامج التشخيص من محرك أقراص فلاش USB قابل للتمهيد.
  • تقوم بتثبيت أنظمة التشغيل من محرك أقراص فلاش USB قابل للتمهيد.
  • نادرًا ما تستخدم محركات أقراص USB المحمولة لنقل البيانات أو لا تستخدمها أبدًا.

إذا قمت بتغيير ترتيب التمهيد لإزالة محركات أقراص USB المحمولة أو وضعها بعد القرص الثابت للنظام ، فيمكنك دائمًا تغيير ترتيب التمهيد في المستقبل لوضع محركات أقراص USB أولاً إذا كنت بحاجة إلى تشغيل برامج تشخيص أو تثبيت نظام تشغيل جديد.

هنا & # 8217s كيفية تغيير ترتيب التمهيد في Windows 7:

  1. انقر يبدأ.
  2. انقر فوق السهم الأيمن بجوار اغلق زر.
  3. يختار إعادة بدء.

بعد إعادة تشغيل النظام ، اضغط على المفتاح الذي يبدأ تشغيل برنامج إعداد BIOS أو UEFI الثابت (انظر الشكل 8.3).

الشكل 8.3 في بعض الأنظمة ، مثل هذا الكمبيوتر المحمول HP Pavilion DV6 ، قد تحتاج إلى الضغط على مفتاح (ESC) لرؤية خيارات بدء التشغيل بما في ذلك إعداد BIOS (F10).

انتقل إلى مربع الحوار المستخدم لتعيين ترتيب تمهيد محرك الأقراص (انظر الشكل 8.4).

الشكل 8.4 يبحث هذا النظام عن محركات أقراص USB المصغرة كأول أجهزة قابلة للتمهيد.

لا يدعم Windows 8.1 (بخلاف Windows 8) إنشاء قرص إصلاح مضغوط أو قرص DVD ، على الرغم من أنه يمكنك استخدام وسائط توزيع Windows 8.1 كقرص إصلاح. مع Windows 8.1 ، إذا كان نظامك يدعم التمهيد من محرك أقراص USB ، فيجب عليك إنشاء محرك استرداد USB بدلاً من ذلك.

توقف (شاشة زرقاء) أخطاء عند بدء التشغيل

إذا قمت بتشغيل جهاز الكمبيوتر الخاص بك الذي يعمل بنظام Windows ، وبدلاً من رؤية شاشة تسجيل الدخول إلى Windows أو سطح المكتب ، ترى شاشة مشابهة للشاشة الموضحة في الشكل 8.5 ، لديك خطأ STOP ، يُعرف أيضًا باسم & # 8220Blue Screen & # 8221 أو BSOD (& # 8220 شاشة زرقاء من الموت) خطأ. ماذا حدث؟

الشكل 8.5 خطأ 0x7B STOP في نظام التشغيل Windows 7 بسبب تغيير إعداد واجهة SATA في نظام BIOS (أ). يعرض Windows 8 خطأ STOP مختلفًا (ب).

يمكن أن تحدث أخطاء الشاشة الزرقاء بسبب العديد من المشكلات. عند بدء التشغيل ، عادةً ما تكون & # 8217re سببًا في حدوث مشكلات في برامج تشغيل أجهزة القرص الثابت. إذا ظهر خطأ شاشة زرقاء بعد قيامك بالتمهيد إلى سطح مكتب Windows ، فقد يكون السبب في ذلك هو التطبيقات الفاسدة أو برامج تشغيل الأجهزة الفاسدة أو مشاكل الذاكرة.

عندما ترى خطأ الموت الزرقاء ، تأكد من تسجيل الأرقام المدرجة بعد رسالة STOP ، مثل STOP: 0x0000001E ، أو 0x1E للاختصار. إذا تم عرض اسم الخطأ ، مثل KMODE_EXCEPTION_NOT_HANDLED ، فقم بتسجيله أيضًا. يمكنك بعد ذلك البحث عن رقم الخطأ والاسم على موقع دعم Microsoft (http://support.microsoft.com) للعثور على حلول Microsoft & # 8217s المقترحة.

يسرد الجدول 8.2 بعض أخطاء STOP الأكثر شيوعًا والحلول الممكنة.

الجدول 8.2 أخطاء وحلول توقف Windows الشائعة

رقم خطأ الإيقاف

STOP خطأ الاسم

الحلول المقترحة

تحقق من برامج تشغيل الجهاز أو الخدمات التي تستخدمها أدوات النسخ الاحتياطي أو مكافحة الفيروسات.

تحقق من برامج تشغيل الجهاز أو الخدمات التي تستخدمها أدوات النسخ الاحتياطي أو مكافحة الفيروسات.

تحقق تعليمات غير قانونية أو غير معروفة من برنامج التشغيل المشار إليه في رسالة الخطأ.

اختبر القرص الصلب بحثًا عن أخطاء.

اختبار وحدات الذاكرة تعطيل ذاكرة التخزين المؤقت في نظام BIOS تحقق من تكوين الأجهزة.

برنامج تشغيل جهاز القرص الثابت غير صحيح أو مفقود ، راجع & # 8220 إصلاح أخطاء 0x7B ، & # 8221 هذا الفصل ، للحصول على التفاصيل.

اختبار الأجهزة وذاكرة الوصول العشوائي تحقق من تكوين SCSI إذا كانت قيد الاستخدام وتأكد من أن وحدة المعالجة المركزية ليست فيركلوكيد.

تحقق من إدارة الطاقة وتعطيل برامج الكتابة على الأقراص المضغوطة إدارة الطاقة ، وأعد تثبيت برنامج الكتابة على الأقراص المضغوطة أو قم بترقيته مؤقتًا.

أعد تثبيت برامج الجهات الخارجية باستخدام System File Checker مع خيار Scannow (SFC / Scannow) للتحقق من ملفات النظام.

لسوء الحظ ، يتم تكوين Windows عادةً لإعادة تشغيل النظام فورًا عند ظهور خطأ STOP ، لذا يمكنك & # 8217t قراءته. لتكوين Windows بحيث يظل خطأ STOP على الشاشة حتى تتمكن من تحديد ما هو عليه والبحث عن حلول ، راجع & # 8220 إعداد جهاز كمبيوتر أو جهاز لوحي يعمل بنظام التشغيل Windows لاستكشاف الأخطاء وإصلاحها بسهولة & # 8221 الفصل 1 ، ص 37.

يمكنك أيضًا تعطيل إعادة التشغيل في حالة حدوث خطأ STOP مع خيار بدء التشغيل لتعطيل إعادة التشغيل التلقائي بعد الفشل أو تعطيل إعادة التشغيل التلقائي عند فشل النظام. راجع & # 8220Disable Automatic Restart on System Failure، & # 8221 هذا الفصل ، ص 222.

إصلاح أخطاء 0x7B عند بدء التشغيل

إذا كنت تقوم ببناء جهاز كمبيوتر ، أو قمت للتو بالترقية إلى قرص ثابت جديد ، أو قمت للتو باستبدال بطارية اللوحة الأم التي تحافظ على إعدادات النظام ، فمن الممكن أن يكون جهاز الكمبيوتر الخاص بك & # 8220forgotten & # 8221 إعدادات تكوين القرص الثابت الصحيحة.

يتم تكوين جميع الأقراص الثابتة تقريبًا باستخدام Auto كنوع القرص الثابت. وبالتالي ، في حالة فقد معلومات الإعداد ، يكون الإعداد الافتراضي (العادي) هو Auto وسيتم اكتشاف محرك الأقراص بشكل صحيح.

ومع ذلك ، يمكن أن يكون إعداد واجهة SATA التي يستخدمها القرص الثابت لديك مشكلة. هناك العديد من الإعدادات الممكنة لواجهة SATA (IDE و AHCI و RAID) ، وإذا تم تكوين نظامك باستخدام إعداد واحد ، ولكن تم استخدام إعداد مختلف في BIOS النظام أو البرنامج الثابت UEFI ، فلن يبدأ الكمبيوتر الخاص بك ، ويعرض # 8217t خطأ توقف 0x7B (راجع الشكل 8.5).

إذا كنت تعرف الإعداد الصحيح ، فاتبع الخطوات التالية:

  1. أوقف تشغيل الكمبيوتر وأعد تشغيله.
  2. ابدأ برنامج إعداد BIOS أو UEFI الثابت.
  3. قم بتغيير إعداد SATA إلى القيمة الصحيحة.
  4. احفظ الإعدادات وأعد تشغيل الكمبيوتر.
  5. حدد Start Windows Normally إذا طُلب منك ذلك.

إذا كنت لا تعرف & # 8217 الإعداد الصحيح لاستخدامه في الخطوة 3 ، فاختر IDE (المعروف أيضًا باسم ATA أو Compatible) إذا تم تعيين النظام على AHCI أو AHCI إذا تم تعيين النظام على IDE أو ATA أو Compatible.

التبديل إلى وضع AHCI في نظامي التشغيل Windows 7 و Windows 8.x

إذا كانت محركات أقراص SATA مضبوطة حاليًا للتشغيل في وضع IDE ، ولكنك تخطط لتثبيت SSD ، فضع في اعتبارك أن SSD لا يمكنه تزويدك بأداء أسرع ما لم تستخدم وضع AHCI. إذا تعطل النظام عند تغيير أوضاع SATA ، فكيف يمكنك التغيير بأمان من وضع IDE إلى وضع AHCI؟

يوصى أيضًا بوضع AHCI للحصول على أداء كامل مع محركات الأقراص الثابتة SATA بسرعة 3 جيجابت في الثانية و 6 جيجابت في الثانية.

قبل إجراء التبديل ، تحتاج إلى تمكين Windows من استخدام برامج تشغيل AHCI عند الضرورة.

أسهل طريقة لنظامي التشغيل Windows Vista و Windows 7 هي استخدام معالج Fix-It المتاح من http://support.microsoft.com/kb/922976. تُفصِّل هذه الصفحة أيضًا تغييرات السجل اليدوية التي تُجري نفس التغييرات مثل Fix-It Wizard.

بعد تشغيل معالج Fix-It أو إجراء التغييرات المطلوبة يدويًا ، يمكنك تمكين وضع AHCI بأمان في BIOS النظام أو مربع حوار إعداد البرنامج الثابت UEFI (راجع الشكل 8.8) ، وسيقوم نظامك بتثبيت برامج التشغيل المناسبة وتشغيلها بشكل صحيح.

للتبديل من وضع IDE إلى وضع AHCI في Windows 8.x ، اتبع هذا الإجراء (مقتبس من http://superuser.com/questions/471102/change-from-ide-to-ahci-after-installing-windows-8) :

انقر فوق فارغ التمهيد الآمن مربع (انظر الشكل 8.6).

الشكل 8.6 تأكد من تحديد التمهيد الآمن قبل النقر فوق موافق.

انقر أو اضغط اعد البدء الان (انظر الشكل 8.7).

يتيح لك الشكل 8.7 Restart Now تغيير إعدادات البرامج الثابتة (BIOS / UEFI).

قم بتغيير وضع SATA إلى AHCI (انظر الشكل 8.8).

الشكل 8.8 التحضير لتغيير نظام تم تكوينه لوضع IDE إلى وضع AHCI.

سيتم إعادة تشغيل جهاز الكمبيوتر الخاص بك باستخدام وضع AHCI للحصول على الأداء الكامل لأجهزة SATA الخاصة بك.

بيانات محرك الأقراص غير المفكوكة وكابلات الطاقة

يعد الجزء الداخلي من جهاز كمبيوتر سطح المكتب مكانًا مزدحمًا. سواء كنت قد فتحت نظامك لترقية الذاكرة ، أو استبدال المكون ، أو لمجرد رؤية ما & # 8217s & # 8220 تحت الغطاء ، & # 8221 ربما تكون قد فككت أو فصلت كبلات الطاقة أو البيانات التي تنتقل إلى القرص الصلب أو البيانات كابل يربط القرص الصلب باللوحة الأم. إذا كان محرك أقراص النظام (C :) قد تم فصل الكابلات أو فصلها ، فسترى لا يوجد نظام تشغيل أو رسائل خطأ أخرى مماثلة.

لا يتم قفل معظم كبلات بيانات SATA في مكانها ، لذلك من السهل أن يكون لديك كبل مفكوك على محرك أقراص (انظر الشكل 8.9) أو اللوحة الأم (انظر الشكلين 8.10 و 8.11).

الشكل 8.9 كبل بيانات مفكوك على قرص صلب SATA.

الشكل 8.10 مهايئ مضيف للوحة الأم SATA مزود بكبل بيانات غير مفصول.

الشكل 8.11 تستخدم بعض اللوحات الأم منافذ SATA مثبتة في الأمام ، مثل هذه ، والتي تتميز أيضًا بكابل بيانات فضفاض.

وبالمثل ، يمكن أن تنفصل كبلات الطاقة SATA من محركات الأقراص (انظر الشكل 8.12).

الشكل 8.12 لم يتم توصيل كبل الطاقة الموجود على محرك أقراص SATA هذا بإحكام.

لحل مشاكل الكابلات المفكوكة أو المنفصلة:

  1. إيقاف تشغيل الكمبيوتر.
  2. افصل مصدر الطاقة عن طاقة التيار المتردد.
  3. افتح النظام.
  4. تحقق من القرص الصلب أو SSD بحثًا عن كابل (كبلات) مفكوكة أو غير متصلة.
  5. تحقق من اللوحة الأم بحثًا عن كبلات بيانات SATA مفكوكة أو غير متصلة.

قم بتوصيل الكبل (الكابلات) بإحكام في مكانه (انظر الأشكال 8.13 و 8.14 و 8.15).

الشكل 8.13 قرص صلب SATA مزود بكابلات طاقة وكابلات بيانات متصلة بشكل صحيح.

شكل 8.14 كبل بيانات SATA مثبت بشكل صحيح وموصل بمنفذ اللوحة الأم العلوي.

الشكل 8.15 كبل بيانات SATA مثبت بشكل صحيح وموصل بمنفذ اللوحة الأم المواجه للأمام.

فشل محرك الأقراص

إذا كان القرص الصلب يصدر ضوضاء عالية أو صاخبة عند تشغيله ، فمن المحتمل أن يكون قد فشل. في حالة سقوط القرص الصلب أو تعرضه لضربة قوية ، فمن المحتمل جدًا حدوث عطل.

ومع ذلك ، قد يكون القرص الصلب قد فشل إذا كان صامتًا تمامًا حتى عند وضع أذنك بجواره أو لم يسخن بعد تشغيل النظام لعدة دقائق.

قبل افتراض فشل القرص الثابت ، قم بإجراء اختبار العزل هذا لتحديد ما إذا كانت المشكلة تتعلق بالقرص الثابت أو كبل الطاقة الخاص به أو كبل البيانات الخاص به:

  1. إيقاف تشغيل الكمبيوتر.
  2. افصل مصدر الطاقة عن طاقة التيار المتردد.
  3. افتح النظام.
  4. حدد موقع كبل الطاقة الذي يعمل بين القرص الصلب ومصدر الطاقة.
  5. افصل كبل الطاقة عن مصدر الطاقة.
  6. إذا كان كبل الطاقة يستخدم مقسمًا أو محولًا لتوفير الطاقة لمحرك الأقراص ، فقم بتوصيل محرك الأقراص مباشرةً بمصدر الطاقة (إن أمكن). إذا لم يكن ذلك ممكنًا ، فاستبدل الفاصل أو المحول وتأكد من توصيله بإحكام بمصدر إمداد الطاقة ومحرك الأقراص.
  7. أعد توصيل مصدر الطاقة بطاقة التيار المتردد.
  8. إعادة تشغيل الكمبيوتر.
  9. إذا كان محرك الأقراص لا يزال لا يعمل ، فكرر الخطوتين 1 و 2.
  10. أعد توصيل محرك الأقراص بكابل الطاقة الأصلي (والمقسم أو المحول).
  11. قم بإزالة كبل البيانات من محرك الأقراص الثابتة والكمبيوتر.
  12. قم بتركيب كبل بديل معروف للعمل.
  13. قم بتوصيله بمنفذ SATA على اللوحة الأم ومحرك الأقراص.
  14. كرر الخطوتين 7 و 8.
  15. إذا كان محرك الأقراص لا يزال لا يعمل ، فهذا يعني أن محرك الأقراص قد فشل. استبدلها.

إذا قمت بنسخ معلوماتك احتياطيًا ، فيمكنك استبدال القرص الثابت واستعادة نظامك من نسخة احتياطية. ومع ذلك ، إذا لم يكن لديك نسخة احتياطية وكانت المعلومات حيوية ، فيمكنك استخدام شركة لاستعادة البيانات لاستعادة بياناتك. تمتلك هذه الشركات غرفًا نظيفة تتيح الاستبدال الآمن للمكونات الفاشلة وتقنيات استخراج البيانات المتقدمة. توقع أن تدفع مئات الدولارات لاسترداد & # 8211 إذا سمح حالة محرك الأقراص & # 8217s بذلك.


لقد واجهت هذه المشكلة نفسها وتعقبت السبب الجذري: متغير البيئة C_INCLUDE_PATH. حدث منجم على النحو التالي:

جاء هذا من برنامج نصي لتسجيل الدخول في مكان ما كان يفعل شيئًا مثل

أثناء إعداد بيئتي. يبدو هذا صحيحًا للوهلة الأولى للأسف ، يبدو أن الحالة foo: تعادل foo :. في هذا السياق - أي ، يبدو أن السلسلة الفارغة في تلك القائمة المفصولة بنقطتين من عنصرين يتم التعامل معها ضمنيًا مثل. . مما يضيف الدليل الحالي إلى النظام بشكل فعال يتضمن المسار ، مما يجعل #include & ltpoll.h & gt يفعل نفس الشيء مثل #include "poll.h" ، وهو أمر سيء.

في حالة Perl ، يؤدي تضمين المسار المحتال إلى جعل استطلاع Perl.h يشتمل على نفسه بدلاً من /usr/include/poll.h. نظرًا لأن استطلاع Perl.h لديه حماية ضد التضمين المتعدد ، فإن التضمين الثاني بصمت لا يفعل شيئًا ، وينتهي بك الأمر بدون استطلاع. h على الإطلاق ، مما يؤدي سريعًا إلى خطأ المترجم الذي رأيناه كلانا. هذا يفسر أيضًا سبب قيام التصحيح الخاص بك بإزالة المشكلة: لا يوجد ./sys/poll.h في دليل الإنشاء ، لذلك ينتهي الأمر بالمترجم بالعثور على /usr/include/sys/poll.h ، والذي يحدث في النهاية أنه ما انت اردت.

كان الحل هو التخلص من القولون الضال في C_INCLUDE_PATH. في حالتي ، وجدت البرنامج النصي الذي كان يضبطه بشكل غير صحيح وقمت بإصلاحه بحيث يتحقق صراحة من الحالة التي كان فيها C_INCLUDE_PATH السابق فارغًا ، ولا يضيف نقطتين في هذه الحالة. بالطبع ، كحل سريع لمرة واحدة ، كان بإمكاني أيضًا تشغيل التصدير C_INCLUDE_PATH = / home / me / REDACTED / تضمين أو إلغاء تعيين C_INCLUDE_PATH فقط قبل إنشاء Perl.


() يقوم بتشغيل الأوامر في المجموعة الفرعية ، لذلك من خلال الخروج ، فإنك تخرج من المجموعة الفرعية وتعود إلى الصدفة الأصلية. استخدم الأقواس <> إذا كنت تريد تشغيل الأوامر في الغلاف الحالي.

(قائمة) يتم تنفيذ القائمة في بيئة فرعية. لا تظل التخصيصات المتغيرة والأوامر المضمنة التي تؤثر على بيئة shell سارية المفعول بعد اكتمال الأمر. حالة العودة هي حالة الخروج من القائمة.

يتم تنفيذ القائمة ببساطة في بيئة shell الحالية. يجب إنهاء القائمة بسطر جديد أو فاصلة منقوطة. يُعرف هذا بأمر المجموعة. حالة العودة هي حالة الخروج من القائمة. لاحظ أنه على عكس الأحرف الوصفية (و) ، فإن <و> كلمات محجوزة ويجب أن تحدث حيث يُسمح بالتعرف على كلمة محجوزة. نظرًا لأنها لا تسبب فاصل كلمة ، يجب فصلها عن القائمة بمسافة بيضاء أو حرف أولي آخر للقذيفة.

من الجدير بالذكر أن بنية الصدفة متسقة تمامًا وأن المجموعة الفرعية تشارك أيضًا في التركيبات الأخرى () مثل استبدال الأمر (أيضًا مع بناء جملة النمط القديم `..`) أو استبدال العملية ، لذلك لن يخرج التالي من الغلاف الحالي إما:

في حين أنه قد يكون من الواضح أن الأجزاء الفرعية متورطة عندما يتم وضع الأوامر صراحةً داخل () ، فإن الحقيقة الأقل وضوحًا هي أنها تتكاثر أيضًا في هذه الهياكل الأخرى:

بدأ الأمر في الخلفية

لا يخرج من الصدفة الحالية لأن (بعد man bash)

إذا تم إنهاء أحد الأوامر بواسطة عامل التحكم & amp ، يقوم shell بتنفيذ الأمر في الخلفية في مجموعة فرعية. لا تنتظر الصدفة انتهاء الأمر ، وحالة الإرجاع هي 0.

لا يزال يخرج فقط من الطبقة الفرعية.

لكن القذائف المختلفة تتصرف بشكل مختلف في هذا الصدد. على سبيل المثال ، تضع bash جميع مكونات خط الأنابيب في مجموعات فرعية منفصلة (ما لم تستخدم خيار آخر أنبوب في الاستدعاءات حيث لا يتم تمكين التحكم في الوظيفة) ، ولكن AT & ampT ksh و zsh يشغلان الجزء الأخير داخل الغلاف الحالي (يسمح POSIX بكلا السلوكين) . هكذا

لا يفعل شيئًا في الأساس في bash ، ولكنه يخرج من zsh بسبب الاخير خروج .

يؤدي خروج coproc أيضًا إلى الخروج في قشرة فرعية.

تنفيذ الخروج في قشرة فرعية هو أحد الأخطاء:

يطبع البرنامج النصي 42 مخرجًا من ملف قشرة فرعية مع رمز العودة 1 ، ويستمر مع البرنامج النصي. حتى استبدال المكالمة بـ echo $ (CALC) || لا يساعد خروج 1 لأن كود الإرجاع الخاص بالصدى هو 0 بغض النظر عن كود الإرجاع للحساب. ويتم تنفيذ احسب قبل الصدى.

الأمر الأكثر إثارة للحيرة هو إحباط تأثير الخروج عن طريق لفه في مدمج محلي كما في النص التالي. لقد تعثرت في المشكلة عندما كتبت وظيفة للتحقق من قيمة الإدخال. مثال:

أريد إنشاء ملف باسم "year month day.log" ، أي 20141211.log لهذا اليوم. يتم إدخال التاريخ من قبل مستخدم قد يفشل في توفير قيمة معقولة. لذلك ، في وظيفتي fname أتحقق من قيمة الإرجاع للتاريخ للتحقق من صحة إدخال المستخدم:

تبدو جيدا. دع النص يسمى s.sh. إذا قام المستخدم باستدعاء البرنامج النصي بـ ./s.sh "الخميس 11 ديسمبر 20:45:49 CET 2014" ، يتم إنشاء الملف 20141211.log. ومع ذلك ، إذا كتب المستخدم ./s.sh "Thu hec 11 20:45:49 CET 2014" ، فسيخرج البرنامج النصي:

يشير السطر fname… إلى أنه تم اكتشاف بيانات الإدخال السيئة في المجموعة الفرعية. لكن المخرج 1 في نهاية السطر المحلي ... لا يتم تشغيله أبدًا لأن التوجيه المحلي يعرض دائمًا 0. هذا لأنه يتم تنفيذ المحلي بعد، بعدما $ (fname) وبالتالي يقوم بالكتابة فوق كود الإرجاع الخاص به. وبسبب ذلك ، يستمر السكربت ويستدعي touch بمعامل فارغ. هذا المثال بسيط ولكن سلوك bash قد يكون مربكًا للغاية في تطبيق حقيقي. أعلم أن المبرمجين الحقيقيين لا يستخدمون السكان المحليين

لتوضيح الأمر: بدون المحلي ، يتم إحباط البرنامج النصي كما هو متوقع عند إدخال تاريخ غير صالح.

الإصلاح هو تقسيم الخط مثل

يتوافق السلوك الغريب مع الوثائق المحلية داخل صفحة الدليل الخاصة بـ bash: "حالة الإرجاع هي 0 ما لم يتم استخدام local خارج دالة ، أو تم توفير اسم غير صالح ، أو كان الاسم متغيرًا للقراءة فقط."

على الرغم من أنني لا أكون خللًا ، إلا أنني أشعر أن سلوك bash غير بديهي. أنا على دراية بتسلسل التنفيذ ، ومع ذلك ، لا ينبغي أن يخفي المحلي مهمة معطلة.

احتوت إجابتي الأولية على بعض عدم الدقة. بعد مناقشة كاشفة ومتعمقة مع mikeserv (شكرًا لك على ذلك) ذهبت لإصلاحها.


لا أعرف ما الذي ينتج غيغابايت من الخطأ في سجل النظام

أعتقد أن الخطأ ناتج عن VLC. جرب استخدام مشغل وسائط آخر.

/.local/share/sddm/xorg-session.log - & gt 77G - & gt vdpau_chroma خطأ في عامل التصفية: فشل ميزات جهاز مزج الفيديو: تم توفير قيمة مقبض غير صالحة. - & gt VLC + برامج تشغيل nvidia تسبب هذا. & ndash karpi 13 يناير 2020 الساعة 11:20

يوجد خطأ تم إرساله لهذا الملف الكبير / var / log / syslog عند تشغيل / إيقاف تشغيل مقطع فيديو مؤقتًا عند التبديل إلى مستخدم آخر يؤدي إلى إنشاء وحدات غيغابايت من سجلات الأخطاء. في وصف الخطأ ، ذكر أن استخدام مشغل الفيديو (على سبيل المثال ، VLC) هو وسيلة لإحداث الخطأ. ليس من الواضح ما إذا كان VLC هو اللاعب الوحيد الذي ينتج الخطأ.

لم يتم حل الخلل. ولكن كطريقة لإيقاف الإخراج ، يبدو أن إغلاق VLC يعمل. وفقًا للرسائل الموجودة في سلسلة الأخطاء ، وتجربتي الخاصة ، فإن تجنب تشغيل مقطع فيديو أثناء التبديل بين المستخدمين ، وربما مساحات العمل ، يجب أن يمنع ظهور المشكلة. الإجابة عن طريق nyxee هي حل بديل ذي صلة.

& quotPaul_Pedant ، لقد بحثت في Google ولكن لم أتمكن من العثور على أي شيء مفيد & quot.

لقد بحثت على googled & quotorg.gnome.Nautilus [1514]: [00007fa4fc465ce0] خطأ مرشح vdpau_chroma: فشل ميزات خلاط الفيديو: تم توفير قيمة مقبض غير صالحة & quot وظهرت أربع منشورات مفيدة.

تتعلق اثنتان منها برسائل سجل النظام حول & quotinvalid handle value & quot ، ورسائل أخرى حول & quotAssertionMessage: *** خطأ في `` nautilus ': free (): مؤشر غير صالح: 0x0993d258 *** & quot. ربما يكون هذا هو السبب الجذري نفسه ، لأن مؤشر الحر () هو مجرد مؤشر أيضًا. إذا كان نوتيلوس يفسد ذاكرته ، فلا يخبرنا بما يخرج.

يؤدي تشغيل / إيقاف مقطع فيديو مؤقتًا عند التبديل إلى مستخدم آخر إلى إنشاء وحدات غيغابايت من سجلات الأخطاء. رسائل سجل النظام حول & quotinvalid handle value & quot

nautilus تأكيد الفشل: *** خطأ في `` nautilus ': مجاني (): مؤشر غير صالح: 0x00007fc7ec3a8800 ***

nautilus تأكيد الفشل: *** خطأ في `` nautilus ': مجاني (): مؤشر غير صالح: 0x0993d258 ***

تعطيل أخطاء تسجيل برنامج تشغيل nvidia

ربما يجب عليك الإجابة على أسئلتي التفصيلية ، أو مجرد إلغاء تثبيت Nautilus وإعادة تثبيته ، أو التحقق من إصداراتك مقابل تقارير الأخطاء هذه ، أو الإبلاغ عن خطأ على أحد هذه المواقع. ليس لدي نظام تشغيل pop-os أو Nautilus أو Ubuntu أو nvidia أو مشكلة ، لذلك لا يمكنني إجراء مزيد من التحقيق في هذا الأمر.


تعذر تشغيل خطأ خادم IIS Express Web في Visual Studio 2015 - كيفية إصلاحه

قد يكون العمل مع Visual Studio على إصدارات Windows الحديثة مثل Windows 10 أمرًا صعبًا ، لأن إعدادات الأمان المحسّنة لنظام التشغيل الجديد قد تخلق بعض المشكلات على جهاز المطور ، والتي غالبًا ما تحتاج إلى الوصول إلى بعض ملفات النظام - خاصة عند العمل مع IIS تعبير عن. تحدثنا عن ذلك في عدد من المنشورات ، على سبيل المثال هنا (خطأ في الوصول إلى قاعدة تعريف IIS) ، وهنا (السماح بالطلبات الخارجية من الأجهزة البعيدة) وأيضًا هنا (معالجة بمعرف #### خطأ).

سنقدم هنا مشكلة أخرى قد تواجهك أثناء العمل باستخدام حل ASP.NET Core أو MVC ، مباشرة بعد محاولة تنفيذه في وضع التصحيح:

غير قادر على بدء تشغيل خادم IIS Express Web

هناك العديد من الحلول التي قد تحل هذه المشكلة: نقترح تجربتها واحدة تلو الأخرى ، والتوقف فقط عندما تتمكن من إصلاحها.

  1. احذف ملف Documents IISExpress المجلد باستخدام أمر وحدة التحكم التالي: rmdir / s / q & # 34٪ userprofile٪ Documents IISExpress & # 34
  2. احذف ملف applicationhost.config الملف الذي يتم وضعه داخل ملف . مقابل التكوين المجلد في المجلد الجذر لمشروع Visual Studio الخاص بك.
  3. أغلق Visual Studio وأعد تشغيله بامتيازات إدارية (انقر على اليمين & GT تشغيل كمسؤول).
  4. تغيير عنوان URL العشوائي لموقع الويب الخاص بالمشروع: داخل Visual Studio ، انقر على اليمين إلى عقدة المشروع في مكتشف الحل، ثم حدد خصائص التنقل عبر ملف الويب لوحة ، ثم قم بتغيير الرقم في عنوان المشروع قيمة النص.
  5. أضف متغير نظام البيئة _CSRUN_DISABLE_WORKAROUNDS بقيمة 1 كما هو موضح في لقطة الشاشة التالية (بفضل Juan M. Elosegui للإبلاغ عن هذا في مؤشر ترابط SO والصورة):

إذا تمكنت من إصلاح المشكلة ، فأخبرنا بأي من الحلول المعينة تناسبك من خلال ترك تعليقات في قسم التعليقات في هذه المشاركة.

هذا كل ما لدينا الآن: برمجة سعيدة!

المنشورات ذات الصلة

مساعد المراجعة - أداة مراجعة كود النظير لبرنامج Visual Studio تقديم مساعد المراجعة ، وهو مكون إضافي مفيد لمراجعة التعليمات البرمجية لبرنامج Visual Studio لإنشاء طلبات المراجعة والرد عليها من داخل واجهة المستخدم

14 ديسمبر 2019 7 يناير 2021

مبدل التحكم في المصدر - ملحق Visual Studio هو ملحق Visual Studio خفيف الوزن يقوم تلقائيًا بتعيين موفر التحكم بالمصدر وفقًا للموفر الذي يستخدمه مشروع Visual Studio الحالي

5 أكتوبر 2019 10 أكتوبر 2019

Visual Studio - لم يتم تثبيت مكونات الاتصال بخوادم FTP خطأ - كيفية الإصلاح

15 نوفمبر 2017 7 يناير 2021

عن ريان

مدير مشروع تكنولوجيا المعلومات ومهندس واجهة الويب والمطور الرئيسي للعديد من مواقع الويب عالية الحركة وخدمات أمبير المستضافة في إيطاليا وأوروبا. منذ عام 2010 ، أصبحت أيضًا مصممة رائدة للعديد من التطبيقات والألعاب لأجهزة Android و iOS و Windows Phone لعدد من الشركات الإيطالية. Microsoft MVP لتقنيات التطوير منذ 2018.

15 تعليقًا على "تعذر تشغيل خطأ خادم IIS Express Web على Visual Studio 2015 - كيفية إصلاحه"

أعاد تشغيل الاستوديو البصري بامتيازات إدارية وعمل

الحل أعلاه يعمل بشكل مثالي ، شكرًا :)

شكرًا جزيلاً لك ، لم تساعد جميع المواضيع الأخرى التي وجدتها. أكملت الخطوات من 1 إلى 4 قبل المحاولة مرة أخرى. لست متأكدًا من الشخص الذي قام بالخدعة ولكني أعمل.


في نظام Ubuntu الحديث (والعديد من توزيعات GNU / Linux الأخرى) ، يعد إصلاح ملف sudoers التالف أمرًا سهلاً للغاية ، ولا يتطلب إعادة التشغيل ، أو استخدام قرص مضغوط مباشر ، أو الوصول الفعلي إلى الجهاز.

للقيام بذلك عبر SSH ، قم بتسجيل الدخول إلى الجهاز وتشغيل الأمر pkexec visudo. إذا كان لديك وصول مادي إلى الجهاز ، فإن SSH غير ضروري فقط افتح نافذة طرفية وقم بتشغيل الأمر pkexec.

بافتراض أنك (أو بعض المستخدمين الآخرين) مصرح لهم بتشغيل البرامج كجذر باستخدام PolicyKit ، يمكنك إدخال كلمة المرور الخاصة بك ، وبعد ذلك سيتم تشغيل visudo كجذر ، ويمكنك إصلاح / etc / sudoers.

إذا كنت بحاجة إلى تحرير أحد ملفات التكوين في /etc/sudoers.d (وهو أمر غير شائع في هذه الحالة ، ولكنه ممكن) ، فاستخدم pkexec visudo -f /etc/sudoers.d/اسم الملف .

إذا كانت لديك حالة ذات صلة حيث يتعين عليك تنفيذ أوامر إضافية لإدارة النظام كجذر لإصلاح المشكلة (أيضًا غير شائعة في هذه الظروف ، ولكنها شائعة في حالات أخرى) ، يمكنك بدء غلاف جذر تفاعلي باستخدام pkexec bash. بشكل عام ، أي أمر غير رسومي تقوم بتشغيله باستخدام sudo يمكن تشغيله باستخدام pkexec بدلاً من ذلك.

(إذا كان هناك أكثر من حساب مستخدم واحد على النظام مصرح له بتشغيل البرامج كجذر باستخدام PolicyKit ، فعندئذٍ بالنسبة لأي من هذه الإجراءات ، سيُطلب منك تحديد الحساب الذي تريد استخدامه ، قبل أن يُطلب منك كلمة المرور الخاصة بك.)

إذا لم ينجح ذلك - على سبيل المثال ، إذا لم يكن هناك مستخدمون مصرح لهم بتشغيل البرامج كجذر عبر PolicyKit - فقم بالتمهيد من قرص مضغوط مباشر لـ Ubuntu (مثل القرص المضغوط الذي ربما استخدمته لتثبيت Ubuntu) وقم بتثبيت نظام الملفات لـ نظام مثبت. يمكنك القيام بذلك عن طريق تشغيل sudo parted -l لعرض الأقسام الخاصة بك - ربما يوجد قسم ext4 واحد فقط ، وهو نظام ملفات الجذر.

افترض أن نظام الملفات الجذر لنظام أوبونتو المثبت يعمل على / dev / sda1. ثم يمكنك تثبيته باستخدام sudo mount / dev / sda1 / mnt. ثم يمكنك تحرير ملف sudoers للنظام المثبت باستخدام sudo nano -w / mnt / etc / sudoers. أو حتى أفضل من ذلك ، يمكنك تحريره باستخدام

(والذي سيمنعك من حفظ ملف sudoers بصيغة غير صحيحة).


6 إجابات 6

لقد فهمت الأمر بشكل صحيح. كن بجنون العظمة. لا تثق في التعليمات البرمجية الأخرى ، حتى لو كانت رمزك الخاص. تنسى الأشياء ، وتجري التغييرات ، وتتطور الشفرة. لا تثق بالكود الخارجي.

تم توضيح نقطة جيدة أعلاه: ماذا لو كانت المدخلات غير صالحة ولكن البرنامج لا ينهار؟ ثم تحصل على القمامة في قاعدة البيانات والأخطاء أسفل الخط.

عندما سئل عن رقم (مثل السعر بالدولار أو عدد الوحدات) أود إدخال "1e9" ومعرفة ما يفعله الرمز. يمكن أن يحدث.

قبل أربعة عقود ، حصلت على درجة البكالوريوس. في علوم الكمبيوتر من جامعة كاليفورنيا في بيركلي ، قيل لنا أن البرنامج الجيد هو معالجة الأخطاء بنسبة 50٪. كن بجنون العظمة.

لديك بالفعل الفكرة الصحيحة

أي من الطريقتين للتعامل مع المدخلات الخاطئة تنصح به؟

إدخال غير متسق -> لا يوجد إجراء + إخطار

إدخال غير متسق -> إجراء تم التعامل معه بشكل مناسب

لا يمكنك حقًا اتباع نهج قاطع ملفات تعريف الارتباط في البرمجة (يمكنك ذلك) ولكن سينتهي بك الأمر بتصميم معادل يقوم بالأشياء بدافع العادة بدلاً من الاختيار الواعي.

تهدئة العقائد بالبراغماتية.

أفضل ما قاله ستيف ماكونيل

كتب Steve McConnell إلى حد كبير كتاب (Code Complete) عن البرمجة الدفاعية وكانت هذه إحدى الطرق التي نصح بها أنه يجب عليك دائمًا التحقق من صحة مدخلاتك.

لا أذكر ما إذا كان ستيف قد ذكر ذلك ، ولكن يجب أن تفكر في القيام بذلك من أجله غير خاص الأساليب والوظائف ، وغيرها فقط عند الضرورة.

لا توجد إجابة "صحيحة" هنا ، خاصةً بدون تحديد اللغة ونوع الكود ونوع المنتج الذي قد يدخل فيه الرمز. انصح:

اللغة مهمة. في Objective-C ، غالبًا ما يكون من المقبول إرسال رسائل لعدم حدوث أي شيء ، لكن البرنامج لا يتعطل أيضًا. لا تحتوي Java على مؤشرات واضحة ، لذا لا تمثل مؤشرات عدم وجود مصدر قلق كبير هناك. في C ، يجب أن تكون أكثر حرصًا.

أن تكون مصابًا بجنون العظمة هو الشك غير المعقول أو غير المبرر أو عدم الثقة. ربما لا يكون هذا أفضل للبرامج مما هو عليه بالنسبة للأشخاص.

يجب أن يكون مستوى اهتمامك متناسبًا مع مستوى المخاطرة في الكود والصعوبة المحتملة في تحديد أي مشاكل تظهر بالفعل. ماذا يحدث في أسوأ الأحوال؟ يقوم المستخدم بإعادة تشغيل البرنامج ويستمر من حيث توقف؟ الشركة تخسر ملايين الدولارات؟

لا يمكنك دائمًا تحديد المدخلات السيئة. يمكنك مقارنة مؤشراتك دينياً بعدم وجود شيء ، ولكن هذا فقط ما يمسك واحد من بين 2 ^ 32 قيمة ممكنة ، كلها تقريبًا سيئة.

هناك الكثير من الآليات المختلفة للتعامل مع الأخطاء. مرة أخرى ، هذا يعتمد إلى حد ما على اللغة. يمكنك استخدام وحدات ماكرو التأكيد ، والجمل الشرطية ، واختبارات الوحدة ، ومعالجة الاستثناءات ، والتصميم الدقيق ، وتقنيات أخرى. لا يوجد أي منها مضمون ، ولا يوجد أي منها مناسب لكل موقف.

لذلك ، يتلخص الأمر في الغالب في المكان الذي تريد وضع المسؤولية فيه. إذا كنت تكتب مكتبة ليستخدمها الآخرون ، فربما تريد أن تكون حريصًا بقدر ما تستطيع بشأن المدخلات التي تحصل عليها ، وأن تبذل قصارى جهدك لإرسال أخطاء مفيدة عندما يكون ذلك ممكنًا. In your own private functions and methods, you might use asserts to catch silly mistakes but otherwise put responsibility on the caller (that's you) to not pass garbage in.

There should definitely be a notification, such as a thrown exception. It serves as a heads up to other coders who may be misusing code you wrote (trying to use it for something it wasn't intended to do) that their input is invalid or results in errors. This is very useful in tracking down errors, whereas if you simply return null, their code will continue along until they try to use the result and get an exception from different code.

If your code encounters an error during a call to some other code (perhaps a failed database update) which is beyond the scope of that particular piece of code, you really have no control over it and your only recourse is to throw an exception explaining what you know (only what you are told by the code you've called). If you know that certain inputs will inevitably lead to such a result, you can just not bother executing your code and throw an exception stating which input is not valid and why.

On a more end-user related note, it is best to return something descriptive yet simple so that anyone can understand it. If your client calls and says "the program crashed, fix it", you have a lot of work on your hands tracking down what went wrong and why, and hoping you can reproduce the problem. Using proper handling of exceptions can not only prevent a crash, but provide valuable information. A call from a client saying "The program is giving me an error. It says 'X Y Z is not valid input for method M, because Z is too large", or some such thing, even if they have no idea what it means, you know exactly where to look. Additionally, depending on your/your company's business practices, it might not even be you fixing these problems, so it is best to leave them a good map.


شاهد الفيديو: GIS Python: Count shape files and Select by Location 2 Real world ArcPy examples