الخميس، 5 نوفمبر، 2015

مشكلة ويندوز 10 مع localhost



عند تحديث نظام تشغيل ويندوز إلى إصدار Windows 10 يتم تثبيت Microsoft Edge بشكل افتراضي وهو المتصفح الذي تراهن عليه مايكروسوفت ليكون بديلاً عن Internet Explorer في القريب العاجل.

المهم في هذا الموضوع هو ظهور مشكلة عند محاولة تصفح رابط محلي مثل Localhost أو رابط تم إعداده من خلال تعديل الملف hosts في المسار التالي:

C:\Windows\System32\drivers\etc

حيث لا يتعرف Microsoft Edge ويظهر الخطأ Page Not Found


لحل هذه المشكلة اتبع الخطوات التالية:




يجب إزالة تحديد الخيارين التاليين:

  • Include all local (intranet) sites not listed in other zones
  • Include all sites that bypass the proxy server


بالعربي نتقدم


السبت، 24 أكتوبر، 2015

حل مشكلة الصفحة البيضاء في تقرير SSRS


عند استخدام خدمة التقارير مع SQL Server والتي يطلق عليها SSRS قد تواجه ظهور صفحة بيضاء عند عرض التقرير ضمن ASP.NET. إحدى الأسباب التي قد تؤدي إلى ذلك هي وجود مشكلة بالقيم المحددة لوسطاء التقرير Report Parameters وبالتحديد التي تقبل قيم NULL.



المشكلة التي واجهتها بالتحديد هي عند استخدام الشيفرة التالية:



حيث أمرر قيمة للوسيط ProjectID في حال أن قيمته لا تساوي NULL، عندها لا يظهر خطأ في التقرير ولكن يظهر صفحة بيضاء فقط.


الحل هو بتمرير NULL إلى الوسيط ProjectID بشكل صريح كما يلي:



بالعربي نتقدم

الثلاثاء، 20 أكتوبر، 2015

الخطأ Keyset does not exist exception


إحدى الطرق لتطبيق الحماية لخدمات الويب المطبقة باستخدام تقنية WCF هي من خلال استخدام الشهادات الموثقة Authorized Certificates وذلك من خلال تطبيق الإعدادات التالية ضمن ملف الـ web.config

<system.serviceModel>
  <bindings>
    <basicHttpBinding>
      <binding name="BasicHttpBinding_IActiveDirectoryService">
        <security mode="TransportWithMessageCredential">
          <message clientCredentialType="Certificate" />
        </security>
      </binding>
    </basicHttpBinding>
  </bindings>
  <client>

    <endpoint address="https://[URL]/ActiveDirectoryService.svc"
              binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IActiveDirectoryService"
              behaviorConfiguration="customBehavior"
              contract="IActiveDirectoryService"
              name="BasicHttpBinding_IActiveDirectoryService" />

  </client>

  <behaviors>
    <endpointBehaviors>
      <behavior name="customBehavior">
        <clientCredentials>
          <clientCertificate findValue="services-p"
                             x509FindType="FindBySubjectName"
                             storeLocation="LocalMachine" storeName="My" />
          <serviceCertificate>
            <authentication certificateValidationMode="ChainTrust" />
          </serviceCertificate>
        </clientCredentials>
      </behavior>
    </endpointBehaviors>
  </behaviors>

</system.serviceModel>

يجب الانتباه إلى قيمة الخاصية findValue للعنصر clientCertificate فهي تعبر عن اسم الشهادة التي تم تثبيتها على الجهاز، طبعاً هذه الإعدادات تعتمد على معلومات الشهادة الموثقة التي حصلت عليها.

المهم أنه في بعض الأحيان يظهر الخطأ التالي:

Keyset does not exist exception

أحد أسباب هذا الخطأ هي أن الحساب الخاص بالموقع على IIS Application Pool ليس لديه صلاحية للوصول إلى المفتاح الخاص Private Key الخاص بالشهادة، ولحل هذه المشكلة يجب اتباع الخطوات التالية:

1 – افتح الأداة MMC كما يلي




2 – أضف الأداة Certificates كما يلي:







3 – من خلال الأداة Certificates اختر الشهادة المناسبة وبالضغط على زر الفأرة الأيمن اختر All Tasks ومن ثم Manage Private Keys وأعطي حساب الـ IIS Application Pool الصلاحيات المناسبة.

الخطوات السابقة يجب أن تحل المشكلة السابق.

استمتع بالأفضل




الأحد، 18 أكتوبر، 2015

آلية تشغيل IIS Express مع VS 2013


في الإصدارات السابقة لـ Visual Studio كانت هناك ميزة من خلالها يمكن توفير إدارة بسيطة للمستخدمين والأدوار Roles الخاص بنظام إدارة المستخدمين Microsoft Membership الافتراضي الذي يمكن تطبيقه على تطبيقات ASP.NET التي تعمل باستخدام تقنية النماذج Web Forms، هذه الميزة تعمل من خلال القائمة PROJECTS عندما يكون المشروع مفتوح ضمن الـ Visual Studio والأمر هو ASP.Net Configuration

كانت وظيفة هذه الأداء هي توفير إمكانيات بسيطة لإدارة المستخدمين والأدوار عند استخدام ASP.NET Membership Provider.

في Visual Studio 2013 لا تظهر هذه الأداة لكن مازالت إمكانية استخدامها متوفرة وذلك من خلال اتباع الخطوات التالية:

1 - ابحث عن مسار المجلد IISExpress تحت المجدل Program Files وعادة ما يكون كما يلي:


C:\Program Files\IIS Express

2 – شغل سطر الأوامر Command Prompt وانتقل إلى مسار المجلد IIS Express كما يلي:



3 – نفذ الأمر التالي:

iisexpress.exe /path:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ASP.NETWebAdminFiles" /vpath:"/ASP.NETWebAdminFiles" /port:5467 /clr:4.0 /ntlm

مع الانتباه إلى أن قيمة المتغير port يمكن تغييرها مع الانتباه إلى استخدام رقم منفذ غير مستخدم


4 – الآن شغل الأمر التالي في المتصفح:

http://localhost:5467/asp.netwebadminfiles/default.aspx?applicationPhysicalPath=[ProjectPath]&applicationUrl=/

مع الانتباه إلى ضرورة تغيير قيمة المتغير applicationPhysicalPath إلى مسار مجلد المشروع الفيزيائي، مثلاً:

c:\inetpub\wwwroot\mywebsite

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

استمتع بالأفضل









السبت، 10 أكتوبر، 2015

كيف توقف خدمة في ويندوز بشكل إجباري



عند تشغيل/إيقاف Windows Service من خلال الشاشة services.msc أو من خلال سطر الأوامر Command Line باستخدام أحد الأمرين التاليين:

sc start [ServiceName]
sc stop [ServiceName]

في بعض الأحيان قد تعلق الخدمة في الوضع Starting أو Stopping لعدة أسباب من أهمها وجود شيفرة برمجية غير صحيحة في الحدث OnStart أو الحدث OnStop.

فمثلاً لنفترض الخدمة في الحالة Running ونريد إطفاءها (إيقافها عن العمل) وفي الحدث OnStop يوجد السطر التالي فقط:

throw new Exception(“”);

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

1 – الحصول على اسم الخدم التي يجب إيقافها وذلك بالضغط عليها مرتين في شاشة خدمات نظام التشغيل services.msc


2 – تشغيل سطر الأوامر كمدير للنظام Run Command Prompt as administrator.

3 - نفذ السطر التالي

sc queryex TimeBroker

عندها تظهر النتيجة التالي:



نلاحظ القيمة PID تساوي 1348 وهو رقم العملية التي تشغل الخدمة ضمن نظام التشغيل.

4 – الخطوة الأخيرة هي تنفيذ الأمر التالي لقتل العملية رقم 1348 لإيقاف الخدمة عن العمل بشكل إجباري



بعد تنفيذ الأمر السابق ستكون الخدمة قد توقفت بشكل إجباري.









الجمعة، 9 أكتوبر، 2015

أنواع الحقول في محرك البحث Solr



في هذه المقالة يتم استعراض جميع أنواع الحقول في Solr, تم نشر هذه المقالة على موقع scribd كملف PDF