شارك المقالة

كيفية رفع مشروع .NET على MonsterASP باستخدام أمر publish + حل أشهر المشاكل

إذا كنت تعمل على مشروع [ASP.NET](http://asp.net/) Core وتريد نشره على استضافة مثل MonsterASP، فستحتاج إلى استخدام أمر dotnet publish لتجهيز المشروع قبل رفعه. في هذا المقال، سنشرح الطريقة خطوة بخطوة، بالإضافة إلى أشهر المشاكل التي قد تواجهك وكيفية حلها.


أولاً: تجهيز المشروع للنشر باستخدام dotnet publish

قم بفتح Terminal أو Command Prompt داخل مجلد المشروع، ثم نفذ الأمر التالي:

dotnet publish WebApplication1/WebApplication1.csproj -c Release -o publish

شرح الأمر:

  • WebApplication1.csproj → ملف المشروع
  • -c Release → وضع الإنتاج (أفضل أداء)
  • -o publish → مجلد الإخراج

بعد تنفيذ الأمر، سيتم إنشاء مجلد باسم publish يحتوي على الملفات الجاهزة للرفع.


ثانياً: رفع المشروع على MonsterASP

  1. تسجيل الدخول إلى حسابك في MonsterASP
  2. وبعدها سوف تحتاج لعمل قاعده بيانات وwebsite
    رفع مشروع .NET على MonsterASP

    والان اانتقل الي الويبسايت
  3. الدخول إلى File Manager أو استخدام FTP
  4. بعدها انتقل الي file
    بعدها افتح ملف wwwroot واذا لم يكن موجود قم بانشاءه وبعدها ادخل داخله ضع الملف المضغوط بداخله


    وبعدها فك الضغط عنه
    رفع مشروع .NET على MonsterASP

    ليكون بالشكل التالي
    رفع مشروع .NET على MonsterASP

    بعد توليد الملف انسخ كل المحتوي الذي بداخله وقم بضغطه وبعدها قم بوضعه في
  5. التأكد من أن الملف web.config موجود

  6. وتاكد ان المحتوي الذي بداخله
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
          </handlers>
          <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
        </system.webServer>
      </location>
    </configuration>
  7. بعدها تشغيل الموقع من لوحة التحكم

أهم المشاكل التي قد تواجهك وحلولها

المشكلة 1: الموقع لا يعمل (HTTP Error 500)

السبب: خطأ في الإعدادات أو Missing Runtime

الحل:

  • تأكد أن MonsterASP يدعم نفس إصدار .NET
  • راجع ملف web.config
  • افتح logs اذا لم يكن موجود قم بانشاءه لمعرفة الخطأ

المشكلة 2: Missing .NET Runtime

السبب: السيرفر لا يحتوي على نفس نسخة .NET

الحل:

  • استخدم Self-contained deployment:
dotnet publish -c Release -r win-x64 --self-contained true -o publish

خطأ في web.config

السبب: ملف web.config غير متوافق

الحل:

  • تأكد من وجود الملف بهذا النمط:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\WebApplication1.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
  </location>
</configuration>

تاكد ايضا من stdoutLogEnabled انه false ولكن اذا كنت ترغب بتسجيل logs يمكنك تفعيله كما قمت انا بذلك

المشكلة 4: الموقع يعمل محلياً فقط

السبب: إعدادات البيئة

الحل:

  • تأكد من إعداد Production في السيرفر
  • تعديل والتاكد ان كل العناصر التي بداخله كامله مثل التوكن وغيره appsettings.Production.json

مشاكل قواعد البيانات

السبب: Connection String خاطئ

الحل:

  • تحديث Connection String ليتناسب مع السيرفر
  • التأكد من السماح بالاتصال الخارجي

اضافه Environment variables


انتقل الي Scripting بعدها سوف تجد خيار Environment variables قم من داخله باضافه Keys الخاصه بك وبعدها انتقل الي Process وقم بعمل kill او Restart Application [AppPool]

رفع مشروع .NET على MonsterASP


مشكلة ملف appsettings.json

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

على سبيل المثال، إذا كان المشروع يعتمد على قاعدة بيانات MySQL، أو إعدادات البريد الإلكتروني، أو JWT، أو Kafka، فيجب أن تكون هذه الإعدادات موجودة داخل الملف بشكل صحيح.

تأكد من وجود الأقسام الأساسية مثل:

  • ConnectionStrings: ويحتوي على بيانات الاتصال بقاعدة البيانات.
  • AppSettings: ويحتوي على رابط الموقع أو الإعدادات العامة.
  • EmailSettings: ويحتوي على إعدادات إرسال البريد الإلكتروني.
  • Jwt: ويحتوي على إعدادات تسجيل الدخول والتوكن.
  • Kafka: إذا كان مشروعك يستخدم Kafka للإشعارات أو الرسائل.

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

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


نصائح مهمة قبل النشر

  • احذف الملفات غير الضرورية قبل الرفع
  • استخدم Release دائماً وليس Debug
  • تأكد من توافق إصدار .NET
  • اختبر المشروع محلياً قبل رفعه

الخلاصة

رفع مشروع .NET على MonsterASP عملية بسيطة إذا اتبعت الخطوات الصحيحة: استخدم dotnet publish، ارفع الملفات، ثم تحقق من الإعدادات. مع معرفة المشاكل الشائعة، ستتمكن من حل أي خطأ بسرعة.


شاهد أيضًا
مقالات ذات صلة

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع