اذهب إلى المحتوى

Flutter Dev

الأعضاء
  • المساهمات

    787
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    2

أجوبة بواسطة Flutter Dev

  1. بتاريخ 4 دقائق مضت قال Wael Aljamal:

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

    تحتاج للمتغير path أن يكون عام للجميع اماباقي الشيفرة تستخدم ضمن دالة تحميل الصورة.

    لكي لا تعبث بالشيفرة القديمة أضف هذه الشيفرة كما هي في دالة function مستقلة، واربطها مع زر مشاركة.

    الشيفرةةالسابقة التي ارفقادتعا لك والتي تمرر bytes ل share أي ملف ثنائي بدل المسار أي مرر لها هذه مباشرة

     

    اهلا اخي الكريم اعتذر لم اشرح جيدا المقصد

    اعلم طبيعة عمل الشيفرة التي ارفقتها لك ولكني اقصد لم اعلم الطريقة لكيفية إضافة الشيفرة التي أرسلتها انت مع الشيفرة التي ارفقتها انا القديمة 

     

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

      Future ShareImage()async{
        var urls='https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/1200px-Image_created_with_a_mobile_phone.png';
        final url=Uri.parse(urls);
        final res =await http.get(url);
        final bytes =res.bodyBytes;
        final temp = await getTemporaryDirectory();
        final path ='${temp.path}/imageToShare.jpg';
        File(path).writeAsBytesSync(bytes);
    
        Share.shareFiles([path],text:'Great picture');
      }

     

    ولكني هنا واجهة المشكلة :

    )Share.file(
    
              title,
    
              "$name.png",
    
              bytes,
    
              "image/png",
    
              // text: title,
    
            

     

    • أعجبني 1
  2. بتاريخ 1 ساعة قال Wael Aljamal:

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

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

    يمكن ان تعمل المشاركة لواتساب عن طريق الخاصية التالية باستخدام bytes:

    )Share.file(

              title,

              "$name.png",

              bytes,

              "image/png",

              // text: title,

            );

    ويمكنك مراجعة واتساب API هنا

    أي الحل وضع زر مشاركة خاص بالواتساب فقط لبيئة IOS والتي يمكنك اختبارها ضمن شرط if بالاستعانة ب مزوظ platform من فلاتر

    اهلا بك اخي الكريم نعم هذا الكلام صحيح لنني قمت بتحقق ايضا من ذلك لو وضعت صوره فقط هو يعمل ولو وضعت نص لا يعمل

    مساعده لو تكرمت احتاج منك كيف يمكن تطبيق هذا النص البرمجي على الكود التالي: اعذرني ولكني لم اعرف كيفية تطبيقه 

    var urls='https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Image_created_with_a_mobile_phone.png/1200px-Image_created_with_a_mobile_phone.png';
                                        final url=Uri.parse(urls);
                                        final res =await http.get(url);
                                        final bytes =res.bodyBytes;
                                        final temp = await getTemporaryDirectory();
                                        final path ='${temp.path}/imageToShare.jpg';
                                        File(path).writeAsBytesSync(bytes);
                                        Share.shareFiles([path], text: 'Great picture');

     

  3. تحيه طيبه للجميع

    لدي استفسار لو تكرمتم لو احد لديه فكره عن الامر

    هل سياسة تطبيق الواتساب تمنعنا من مشاركة الصور بشكل مباشر من تطبيقاتنا من خلال نظام IOS  وتطبيق فلاتر الى الواتساب بشكل مباشر؟

    قمت باستعمال هذا المكتبة :

    https://pub.dev/packages/flutter_share

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

    ولكن في نظام iOS  لم ينجح الامر كل ما يذهب هو نص فقط

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

     

    • أعجبني 1
  4. بتاريخ 3 دقائق مضت قال Wael Aljamal:

    تمام هو يعيد مصفوفة أي 

    
           imageMaine = dataImage[0]['image'];

    يجب أن تعمل، هل كان الخطأ يظهر من قبل؟ ماالتعديل الذي سبب ظهوره

    لما اعمل تتبع للخطاء من خلال تبويب run  يذهب بي الى هذا السطر من الكود الذي سبق وشاركته لدي

      imgFile.writeAsBytesSync(imageMaine);

     

  5. بتاريخ 2 دقائق مضت قال Wael Aljamal:

    قائمة من عناصر Json أليس كذلك؟ 

    إن كان رد السيرفر كائن واحد هل تعيد مصفوفة؟

    
    جرب 
    
    imageMaine = dataImage['image'];

    ومن الأفضل لتعرف بنية الغرض أن تطبعه هكذا:

    
    تضمين 
    import 'dart:developer';
    
    ثم
    dataImage = convertDataToJson['result'];
    inspect(dataImage);

     

    يعيد لي محتويات سطر الصورة كامل كالتالي:

     [{Image_id: 506, image: https://***********6a0ee2e.png, PID: 516, pictureNum: 1}]

    هذا السطر كامل من جدول البيانات طبعا هو يعيده حسب PID  الذي قمت بأرساله انا بمعنى انا طالب حسب هذا المعرف

    • أعجبني 1
  6. بتاريخ 14 دقائق مضت قال Wael Aljamal:

    ما هي بنية dataImage 

    قائمة اخي حتى استطيع عرض البيانات هيا تابعه لهذا الاسطر

      var convertDataToJson = json.decode(response.body);
          dataImage = convertDataToJson['result'];
          if (dataImage != null) {
    
           imageMaine = dataImage[0]['image'];

     

  7. بتاريخ 2 دقائق مضت قال Wael Aljamal:

    أين قمت بتعريف قائمة من int ؟ ما السطر الذي يسبب الخطأ؟

     لم اقم بتعريفة متغير من نوع رقم ولكن اعتقد ان المشكلة في هذا السطر مع الرقم صفر 0

    dataImage[0]['image'];

    المتغيرات الموجودة كالتالي:

    List dataImage;
    var imageMaine;

     

  8. بتاريخ 6 دقائق مضت قال Wael Aljamal:

    سنقوم بتخزين الصورة محلياًثم نشارك مسارها.

    سوف نعتمد على مكتبة flutter_cache_manager أو غيرها

    • getLocalPathForNetworkImage يخزن الصورة من الانترنت و يعيد رابط الملف الخاص بها في التطبيق
    
    import 'dart:async';
    import 'dart:io' as Io;
    import 'package:image/image.dart';
    
    import 'package:flutter_cache_manager/flutter_cache_manager.dart';
    import 'package:path_provider/path_provider.dart';
    
    
    Future<String> get _localPath async {
      final directory = await getApplicationDocumentsDirectory();
      return directory.path;
    }
    
    Future<Io.File> getLocalPathForNetworkImage(String url) async {
      
      var cacheManager = await CacheManager.getInstance();
      Io.File file = await cacheManager.getFile(url);
      return file.path;
    }

    أو طريقة أخرى

    
    import 'dart:io';
    import 'package:http/http.dart' as http;
    import 'package:path/path.dart';
    import 'package:path_provider/path_provider.dart';
    
    
    
    
    
    final directory = (await getExternalStorageDirectory()).path;
    File imgFile = File('$directory/imageToShare.png');
    imgFile.writeAsBytesSync(imageMaine);
    
    Share.shareFiles(['$directory/imageToShare.png']);

     

     

     

    مرحبا اخي الكريم

    قمت بتطبيقها بشكل التالي:

     Future MakeShare() async {
        var response = await http.get(
            Uri.parse("https://************),
            headers: {"Accept": "application/json"});
          var convertDataToJson = json.decode(response.body);
          dataImage = convertDataToJson['result'];
          if (dataImage != null) {
    
         var  imageMaine = dataImage[0]['image'];
           final directory = (await getExternalStorageDirectory()).path;
           File imgFile = File('$directory/imageToShare.png');
           imgFile.writeAsBytesSync(imageMaine);
           Share.shareFiles(['$directory/imageToShare.png']);
        }
      }

    وحصلت على الخطاء التالي:

     [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type 'String' is not a subtype of type 'List<int>'

     

  9. بتاريخ 5 دقائق مضت قال Wael Aljamal:

    أرجو إرفاق المسار الذي يظهر لديك.

    القصد أن تكتب ملف الصورة القادمة من الاستعلام على شكل ملف و تعيد مساره 

    
        imageMaine = dataImage[0]['image'];

    هذه بيانات صورة، ما المسار الذي تعيده؟ نريد مسار مخزن على الهاتف/تخزين التطبيق ليستطيع برنامج آخر قراءة الملف.

    *****

    بالنسبة للمثال من توثيق المكتية، تشارك المكتبة قائمة من مسارات ملفات الصور، لاحظ تعريف المتيغر 

    
    List<String> imagePaths = [];

    ثم عند إضافة صورة نضيف مسارها

    
    if (pickedFile != null) {
      setState(() {
               imagePaths.add(pickedFile.path);
                             ^^^^^^^^^^^^^^^^^
    });
    }

    ثم تتم مشاركة قائمة مسارات الملفات (الصور)

    
        if (imagePaths.isNotEmpty) {
          await Share.shareFiles(imagePaths,
                              ^^^^^^^^^^^^^^^
              text: text,
    
        }

    مسار الصورة يجب أن يكون على الهاتف و ليس في المخدم المحلي

    اهلا اخي 

    اقتباس

    هذه بيانات صورة، ما المسار الذي تعيده؟ نريد مسار مخزن على الهاتف/تخزين التطبيق ليستطيع برنامج آخر قراءة الملف.

    يعيد الي رابط الصورة من الاستضافة بشكل التالي:

    https://**************/62a0ee2e.png

    وليس من الهاتف

    • أعجبني 1
  10. بتاريخ 4 دقائق مضت قال Wael Aljamal:

    هل تأكدت من صلاحية الوصول لملف الصورة؟ لأن الخطأ يخبرنا أن وسيط المسار فارغ

    هل إن قمت بعرض المسار هنا يظهر المسار بشكل صحيح

    
    onPressed: () async {
    
    	print	(imageMaine)
    
      await Share.shareFiles(imageMaine,
      text: 'Image Shared');
    
    },

     

    مرحبا اخي الكريم

    نعم قمت بعرض الصورة في هذا الموقع وهو يعود الي بنتيجة رابط الصورة  بشكل الصحيح

     

    قمت بالبحث قليلا ومما فهمته انني بحاجه الى تحويل الصورة الى باث ثم استطيع مشاركتها او شيء من هذا القبيل حقيقه انا خبرتي ضعيفة في هذا المجال بمعنى لا نستطيع مشاركة الصورة بشكلها الصحيح هذا بل يجب تحويلها الى هيئة مختلفة تحتاج الى حفظ أولا في مسار الهاتف ثم مشاركتها او شيء من هذا القبيل 

    • أعجبني 1
  11. بتاريخ 2 دقائق مضت قال Wael Aljamal:

    أين تقوم بتعريف المتغير imageMaine؟ يجب أن يكون مرئي لكامل Wedgit  لتستطيع الوصول إليه

    اهلا اخي الكريم 

    عامل var imageMaine اعلى Future MakeShare() async 

     

    هو مرئي بشكل جيد واستطيع مشاهدة رابط الصوره من خلال امر الطباعة ولكن الامر لا ينجح لدى كود المشاركة  استطيع الوصول له ايضا ولكن لو قمت بتشغيل يحصل الخطاء

  12. تحيه  طيبه للجميع 

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

    انا اجلب الصورة من خلال الكود التالي:

     Future MakeShare() async {
    var response = await http.get(
        Uri.parse("https://*********/ImageMakeShare.php?ID=" + widget.IDS.toString()),
        headers: {"Accept": "application/json"});
    
    setState(() {
    
      var convertDataToJson = json.decode(response.body);
      dataImage = convertDataToJson['result'];
      if (dataImage != null) {
    
        imageMaine = dataImage[0]['image'];
    
    }}); }

    قمت باستعمال المكتبة التالية من فلاتر للمساعدة في مشاركة الصورة:

    share_plus

    بشكل التالي:

    await Share.shareFiles([imageMaine ], text: 'Image Shared');

    ولكني احصل على الخطاء التالي:

    E/flutter (10763): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: PlatformException(https:/*******0ee2e.png (No such file or directory), null, null, null)

     

    أقوم باستعماله بشكل التالي:

       FlatButton(
                                    onPressed: () async {
                                      
                                      await Share.shareFiles(imageMaine,
                                          text: 'Image Shared');
                                     
                                    },
                                    child: Column(
                                      children: <Widget>[
                                        Icon(
                                          Icons.share,
                                          size: 25,
                                        ),
                                      
                                      ],
                                    ),
                                  ),

     

    • أعجبني 1
  13. أقوم باستعمال Checkbox لوضع بعض الاختيارات للمستخدمين المشكلة ان لدي صفحه تحتوي على حقول مختلفة مثل text filed  وما شابه ومع محاولة المستخدم اختيار احد الخيارات في Checkbox يحدث تحديث لصفحة او شيء من هذا القبيل بحيث ان كل الحقول الباقية تنحذق البيانات منها التي تم ادراجها من قبل المستخدم مسبقاًً 

    السبب هذا السطر 

     setState(() {
                _checkbox = !_checkbox;
    
        
              });

    ولكني لم استطع القيام بحذفه وجعله بشكل التالي:

    Checkbox(
            value: _checkbox,
            onChanged: (value) {
             
                _checkbox = !_checkbox;
    
               
             
            },
          );

    بشكل هذا لا يمكن للمستخدمين القيام بالاختيار 

    كيف يمكن حل هذا المشكلة بحيث لا يحدث تحديث لصفحه بعد القيام بالاختيار ياليت احد يفيدنا لو كان لديه حل لذلك 

    شكرا لكم

    • أعجبني 1
  14. بتاريخ On 1/21/2022 at 02:49 قال Wael Aljamal:

    حاول استخدام التعليمة التالية في بداية ملف PHP

    
    ini_set('default_charset', 'utf-8');

    أو قم بتعديل ملف php.ini في ملف السيرفر لجعل ترميز النصوص utf8

    عدل السطر:

    
    default_charset = "utf-8"

    وأعد تشغيل المخدم لديك.

    اهلا اخي الكريم

    شكرا لك اخي نعم الحل ناجح تم حل المشكلة

    للفائدة الكود كامل اصبح كالتالي:

     

    <?php
    
    
    
    require_once 'con.php';
    
    
    $sql="SELECT * FROM Users";
    
    $con -> set_charset("utf8");
    
    $stmt = $con->prepare($sql); 
    
    
    $stmt->execute();
    
    $result = $stmt->get_result();
    
    
    $array = array();
    
    while ($row  = mysqli_fetch_assoc($result))
    {
    	$array[] = $row;
    }
    
    
    echo ($result) ?
    json_encode(array("code" => 1, "result"=>$array)) :
    json_encode(array("code" => 0, "message"=>"Data not found !"));
    
    
    ?>

     

    بتاريخ On 1/20/2022 at 23:46 قال بلال زيادة:

    هل يمكنك تحويل ترميز الريسبونس إلى utf8 عن طريق 

    
    String body = jsonDecodeUtf8(response.bodyBytes);

    أو يمكنك إضافة الدالة utf8.decode  إلى response.bodyBytes كما في الطريقة التالية

    
    json.decode(utf8.decode(response.bodyBytes))

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

     

    كل الشكر لك اخي الكريم تم حل المشكلة وارفق الحل في المشاركة للفائدة

    • أعجبني 1
  15. تحيه طيبه للجميع 

    لدي مشروع فلاتر مرتبط بقاعدة بيانات mysql  

    أحاول عرض البيانات للمستخدمين التي تم تخزينها مسبقا على قاعدة البيانات ولكن المشكلة ان الكلمات العربية تظهر على شكل استفهام ؟؟؟؟؟ بشكل هذا

    ما هو الحل لجعل النصوص العربية تظهر بشكل الصحيح ياليت اذا احد لديه فكره يفيدنا

    الكود المستعمل كالتالي:

     _fetchData() async {
        var response = await http.get(
            Uri.parse('http://localhost/HRMS.php'),
            headers: {"Accept": "application/json"});
    
        setState(() {
          var convertDataToJson = json.decode(response.body);
          data = convertDataToJson['result'];
          txtName = data[0]['Name'];
    
    
    log(txtName);
        });
      }

     

    مع العلم انني قمت بستعمل الطريقة التالية ولكن بدون فأئده :

     String body = utf8.decode(response.bodyBytes);
          print(body);

     

    بنسبة الى كود PHP

    <?php
    
    header('access-control-allow-origin: *');
    header('Access-Control-Allow-Headers: *');
    
    require_once 'connt.php';
    
    
    $sql="SELECT * FROM employees  
     INNER JOIN tEmployeeNAME   ON employees.IdEmployeeNAME  = tEmployeeNAME .IdEmployeeNAME 
    
    $stmt = $con->prepare($sql); 
    
    $stmt->execute();
    
    $result = $stmt->get_result();
    
    
    $array = array();
    
    while ($row  = mysqli_fetch_assoc($result))
    {
    	$array[] = $row;
    }
    
    echo ($result) ?
    json_encode(array("code" => 1, "result"=>$array)) :
    json_encode(array("code" => 0, "message"=>"Data not found !"));
    
    
    ?>

     

    شكرا لكم

    • أعجبني 1
  16. بتاريخ On 1/8/2022 at 02:51 قال Sam Ahw:

    أبسط طريقة هي باستخدام مكتبة image_picker، حيث تحتوي خاصية imageQuality وهي قيمة رقمية يمكنك تعديلها بشكل فوري:

    
    ImagePicker imagePicker = ImagePicker();
    PickedFile compressedImage = await imagePicker.getImage(
      source: ImageSource.gallery,
      imageQuality: 75,
    );

    أو يمكنك أيضاً كتابة حد أعظمي لأبعاد الصورة كي لا تتجاوزه بكتابة الخاصيتين maxWidth و maxHeight:

    
    PickedFile compressedImage = await imagePicker.getImage(
      source: ImageSource.gallery,
      maxHeight:  200,
      maxWidth: 200 );
    );

    وأيضاً يوجد حزمة من الأدوات ضمن مكتبة الصور في لغة البرمجة Dart والتي يمكنك استخدامها مع المكتبة path_provider لتحقيق ذلك، مثال:

    
    import 'package:image/image.dart' as Im;
    import 'package:path_provider/path_provider.dart';
    import 'dart:math' as Math;
    
    void compressImage() async {
      File originialImage = await ImagePicker.pickImage();
      final tempDir = await getTemporaryDirectory();
      final path = tempDir.path;
      int randomTitle = new Math.Random().nextInt(10000);
    
      Im.Image image = Im.decodeImage(originialImage.readAsBytesSync());
      Im.Image smallImage = Im.copyResize(image, 500);
      
      var compressedImage = new File('$path/new_$randomTitle.jpg')..writeAsBytesSync(Im.encodeJpg(image, quality: 85));
    }

    حيث نقوم بضغط الصورة المطلوبة من خلال التابع copyResize وهنا وضعنا القيمة التجريبية 500.

    يمكنك الاطلاع على المزيد من التفاصيل والأدوات من توثيق المكتبة image_picker أو حزم التعامل مع الصور ضمن لغة dart.

    اهلا بك اخي الكريم شاكر لك ردك 

    بنسبة الى الإجابة الأولى والثانية لا استطيع استعمال هذا المكتبة لنني استعمل المكتبة التاليه:

    https://pub.dev/packages/wechat_assets_picker

    اما الجواب الثالث قمت بمحاولة تطبيقه ولكن لم ينجح مع هذا المكتبة 

    بتاريخ On 1/8/2022 at 16:09 قال بلال زيادة:

    يمكنك استخدام حزمة flutter_image_compress يمكنك العثور عليها من هنا , تعمل هذه الحزمة على ضغط الصورة , وهناك توثيق كامل يمكنك قراءته للتعامل مع هذه المكتبة و هذه المكتبة تعمل على كلا النظامين ios / android ، ويمكنك تثبيت الحزمة في مشروعك من خلال فتح ملف pubspec.ymal من خلال الأمر التالي 

    
    dependencies:
      flutter_image_compress: ^1.0.0-nullsafety

    ويمكنك استدعاء  المكتبة في الملف الذي تعمل عليه من خلال 

    
    import 'package:flutter_image_compress/flutter_image_compress.dart';

    كذلك تزودك هذه الحزمة ببعض الخصائص للتعامل مع الصورة كخاصية الدوران ( rotate ) ، وخاصية autoCorrectionAngle و خاصية التحكم بجودة الصورة و خاصية العرض و الارتفاع الأقصى للصورة . 

    اهلا بك اخي الكريم

    شاكر لك ردك

    قمت بمحاولة استعمال هذا الحزمة مع الحزمة التي استعملها لجلب الصور ولكن لم تنجح لدي 

  17. تحيه طيبه للجميع

    استعمل المكتبة التأليه من فلاتر لتحميل الصور الى قاعدة البيانات المشكلة ان بعض الصور يصل حجمها الى 3MB 

    https://pub.dev/packages/wechat_assets_picker

    المشكلة ان الشروحات لهذا المكتبة قليله في الانترنت لم اجد طريقة لتقليل جودة الصور حتى احصل على حجم اقل 

    انا استعملها بشكل التالي:

    final List<AssetEntity> result = await AssetPicker.pickAssets(context,
            maxAssets: 4,
            pathThumbSize: 84,
            themeColor:CustomColors.ButtonAddImage,
    
            gridCount: 4,
            selectedAssets: assets,
           
          
        if (result != null) {
          setState(() {
            assets = List<AssetEntity>.from(result);
          });

    ياليت اذا احد يعلم طريقة تقليل جودة الصور لتقليل الحجم يفيدنا بطريقة 

    شكرا لكم

    • أعجبني 1
  18. بتاريخ 22 ساعات قال Wael Aljamal:

    هل SQL Server مثبت على الاستضافة؟ عادة يوجد توثيق لكيفية تنصيب البرمجيات..

    مرحبا اخي 

    شاكر لك ردك عزيزي واعتذر على تأخر الرد الان فقط تم حل المشكلة

    الحل كالتالي للفائدة :

    نعمل تصدير للمشروع في اول خطوة كـ Folder

    طبعا بيكون يحتوي على قاعدة البيانات وكل الملفات المطلوبه

    نذهب الى سيرفر IIS  نعمل اضافة موقع جديد ونمنحه اسم ونختار موقع المشروع الذي تم تصديره من خلال الفيجوال بيسك 

    بعدها لحل المشكله التي تظهر في الاعلى كالتالي:

    1.Application Pools

    2.  نقوم باختيار اسم المشروع الذي تم انشاءه

    3.  من القائمة الجانبية نختار Advanced Setting

    4. Process Model

    5. Identity 

    6. نقوم بتغير قيمة الحل الى Local System

    اعمل تحديث الان لصفحة النت من خلال المتصفح ورح يعمل بشكل طبيعي 

    • أعجبني 1
  19. بتاريخ الآن قال Wael Aljamal:

    تمام هل البرنامج مثبت في الاستضافة بنفس الإصدار؟ 

    أي اصدار قصدك اخي ؟

    بنسبة الى رقم النسخة الموجودة على الفيجوال ستوديو كالتالي:

    15.00.4153

     

    هل يجب ان اقوم بتثبيته ايضا على iis سيرفر ؟

  20. بتاريخ 21 ساعات قال Wael Aljamal:

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

     

    في حال أن الموقع موجود على نفس المخدم (السيرفر) و كنت من قبل تستطيع الوصول له (remote connection)، فإن المشكلة في الاتصالات الداخلية على مستوى السيرفر localhost تأكد من فعيل local connections

    
    Start > All Programs > SQL Server 2005 > Configuration Tools > SQL Server Surface Area Configuration
    
    Click on Surface Area Configuration for Services and Connections
    
    Select the instance that is having a problem > Database Engine > Remote Connections
    
    Enable local and remote connections
    
    Restart instance

    ويوجد تعديل على Connection String أضف localdb

    
    (localdb)\mssqllocaldb
    
    <connectionStrings>
      <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; 
      ...                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^              

     

    اهلا بك اخي الكريم

    شاكر لك ردك 

    نعم انا لم اقم بتثبيت برنامج SQL server  بشكل منفصل هو لدي مرفق في برنامج فيجول بيسك وقمت بصنع القاعدة من خلاله 

     

    صوره توضيحيه مرفقه :

    61d1e1a9608bc_Screenshot2022-01-02213211.png.a665e587f54a8ac12ad040f95b4f5fcf.png

     

    بنسبة الى هذا السطر هو موجود لدي 

    connectionString="Data Source=(LocalDB)\MSSQLLocalDB

    في ملف Web.config حيث انني اقوم بجلب الاتصال من هذا الملف بشكل مستمر في كل الصفحات

  21. قمت برفع مشروع ASP.NET  صفحات ويب على سيرفر IIS المشروع يعمل ولكن لما أحاول الوصول او الاتصال بقاعدة البيانات على سبيل المثال من خلال صفحة تسجيل الدخول احصل على الخطاء التالي:

    A network-related or instance-specific error occurred while establishing a connection to SQL Server.
    The server was not found or was not accessible.
    Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
    (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred.
     Cannot create an automatic instance.
     See the Windows Application event log for error details. )

    كيف يمكن حل هذا المشكلة لو كان احد صارت لديه من قبل لو تكرمتم

    مع العلم ان المشروع يعمل بشكل مثالي على برنامج فيجول ستوديو ويمكن الاتصال بقاعدة البيانات بشكل طبيعي من خلاله فقط بعد تصدير المشروع الى السيرفر تحدث هذا المشكله

    • أعجبني 1
  22. بتاريخ 7 ساعات قال Sam Ahw:

    بالنسبة لنقل المشروع إلى جهاز آخر أو نشره، ستجد خيارين عند النشر ضمن Deployment Mode:

    1- Framework-Dependent: والتي تعني أنه سيتم فقط نقل حزم ومكاتب محددة الخاصة بالتطبيق إلى مكان النشر.

    2- Self-Contained: والتي ستقوم بنسخ كافة ملفات .NET Core runtime وجميع المكتبات الأخرى اللازمة لعمل التطبيق.

    أما عن آلية تشغيل مواقع الويب ASP.net على خادم IIS:

    تأكد من تحميل حزمة .NET Core Hosting على خادم IIS والتي تحوي كل من NET Core Runtime و .NET Core Library و ASP .NET Core Module لتسمح بتشغيل مواقع .NET Core على خادم IIS.

    وبعدها قم بإعادة تشغيل الجهاز والخادم، ثم بعد تهيئة الإعدادات اللازمة لعمل الموقع مثل تحديد مسار الملف واسم النطاق localhost والأمور الأساسية، توجه لمشروع وقم بنشره publish إلى مجلّد (Folder) ثم نضع المسار الذي قمت بتحديده سابقاً في إعدادات الخادم.

    وسيقوم بدوره بتوليد الملف web.config ضمن مجلّد المشروع بشكل تلقائي.

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

    اهلا بك اخي الكريم 

    شاكر لك افادتك وذكر الخطوات بتفصيل

    لقد وجدت ان المشكله كانت لدي في بعض الصلاحيات التي كان من المفترض منحها من خلال 

    Turn Windows features on or off 

    هنا مقطع فيديو يشرح الخطوات بتفصيل 

    https://www.youtube.com/watch?v=PPaqVyBkwMk

    • أعجبني 1
  23. تحيه طيبه للجميع

    قمت بعمل مشروع بلغة سي شارب صفحات انترنت ASP.NET

    المشروع يعمل من خلال فيجول ستوديو ولكني احاول الان نشره بحيث انني ارغب بنقله من حاسوبي الى حاسوب مختلف وجعله يعمل في وضع النشر بمعنى بدون استعمال الفيجوال ستوديو مجرد صفحات انترنت 

    حاول اضافته الى سيرفر IIS  ولكن لا يعمل ما هيا الخطوات الصحيحة حتى انقله الى حاسوب اخر ثم أقوم بتثبيته على IIS  ؟

    مع العلم انني اعلم كيفية تشغيل الصفحات من خلال سيرفر IIS قمت بتجربة صفحات flutter  وأيضا صفحات  html والامر ناجح ولكني لم استطيع تشغيل صفحات asp.net 

    أيضا قمت بعمل نشر له وقمت باختيار option folder  من الفيجوال ستوديو وحصلت على المشروع في مجلد منفصل وهو ما قمت بمحاولة تشغيله على السيرفر  ولكن لم ينجح الامر

    هل توجد خطوات مختلفة لنشر مشروع ASP.NET  على IIS?

    • أعجبني 1
×
×
  • أضف...