نمایش نتایج 1 تا 16 از 16

نام تاپیک: مشکل در ارسال byte[] به WCF

  1. #1

    مشکل در ارسال byte[] به WCF

    سلام خدمت همه دوستان
    من یک عکس رو از کاربر گرفته و اون رو تبدیل به byte[] می کنم، ولی وقتی که میخوام اون رو به صورت پارامتر به WCF بفرستم با پیام خطای زیر مواجه میشم:
    The remote server returned an error: NotFound

    البته web.config رو هم تغییردادم ولی درست نشد و باز هم همون خطا رو میده.
    لطفا اگه امکان داره یه برنامه که این کارو انجام میده رو اینجا بزارید.

    با عرض معذرت خیلی عجله دارم اگه امکان داره سریع این کارو انجام بدید.




  2. #2
    کاربر دائمی آواتار mahdi7s
    تاریخ عضویت
    دی 1387
    محل زندگی
    هر جایی می تونه باشه
    پست
    141

    نقل قول: مشکل در ارسال byte[] به WCF

    با سلام
    اررور فوق یعنی سرویس شما یک مشکلی دارد و قبل از اینکه بخواهد اطلاعات را به کلاینت ارسال کند به خطا برخورد می کند و سرور به حالت Faulted می رود...
    آیا خود سرویس را جداگانه امتحان کردید؟
    پس اعمال تغییرات در سرور مرجع آن در کلاینت را Update کردید؟
    نهایتا کد سرویس و contract ها و فایل پیکربندیتان(لزوما تگ system.serviceModel) را قرار دهید تا زودتر به جواب برسید.

    موفق باشید

  3. #3

    نقل قول: مشکل در ارسال byte[] به WCF

    با سلام
    به نظر نمیاد از سرویس باشه چون وقتی یه پارامتر از نوع String می فرستم مشکلی نداره
    تو این برنامه فقط زمانی این Error رو میده که بخوام پارامتری از نوع Byte[] به وب سرویس ارسال کنم.
    البته چندجا خوندم که باید تنظیمات web.config رو تغییر بدم. من هم اون مراحلی رو که لازم بود انجام دادم ولی باز هم به همین خطا برخورد می کنم.
    اگر شما قبلا این کارو انجام دادید لطفا یه Source Code برام بزارید.

    با تشکر

  4. #4
    کاربر دائمی آواتار mahdi7s
    تاریخ عضویت
    دی 1387
    محل زندگی
    هر جایی می تونه باشه
    پست
    141

    نقل قول: مشکل در ارسال byte[] به WCF

    شما پارامتر String را با یک آرایه ی byte مقایسه می کنید؟! و اگر کمی حجم اطلاعات بالا رود بهتر است از روش Streaming استفاده کنید!
    متاسفانه چندان وقت ندارم سمپلی بگذارم.

    موفق باشید

  5. #5
    کاربر دائمی آواتار taghvajou
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران
    سن
    36
    پست
    571

    نقل قول: مشکل در ارسال byte[] به WCF

    سلام به همه
    محسن یه نمونه کد ساده واستون نوشتم و گذاشتم. همین رو اجرا کن و اگه باز هم به مشکل برخوردی، یه تصویر از خطای بذار تا ببینینم مشکل از کجاست!
    فایل های ضمیمه فایل های ضمیمه

  6. #6

    نقل قول: مشکل در ارسال byte[] به WCF

    با سلام خدمت همه دوستان
    از کمکتون خیلی ممنونم
    ولی متاسفانه نمونه برنامه شما هم همون مشکل رو داره و Error میده.
    البته من خودم تونستم این مشکل رو حل کنم. و نمونه کد رو هم گذاشتم.

    با تشکر
    فایل های ضمیمه فایل های ضمیمه

  7. #7
    کاربر دائمی آواتار taghvajou
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران
    سن
    36
    پست
    571

    نقل قول: مشکل در ارسال byte[] به WCF

    سلام به همه
    1- میشه لطف کنی اصل خطا رو هم بذارین
    2- کد رو یه بار هم با عکسی با حجم پایین تر امتحان کنین و نتیجه اش رو هم بفرمایین
    3- مشکلی که پیدا کردین چی بود؟ و چه جوری حلش کردین؟
    4- نمونه کد رو کجا گذاشتین؟
    5- با تشکرت

  8. #8

    نقل قول: مشکل در ارسال byte[] به WCF

    سلام
    آقای تقوی جو کدی که قبلا نوشته بودم و با خطا مواجه شده بود شبیه نمونه کد شما بود و با هر عکسی حتی عکس با حجم 10کیلو بایت هم Error میداد. این فایل ضمیمه هم نتیجه اجرای برنامه شما هست، که در هنگام آپلود عکس با حجم 20 کیلوبایت رخ داد.
    عکس های ضمیمه عکس های ضمیمه

  9. #9
    کاربر دائمی آواتار taghvajou
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران
    سن
    36
    پست
    571

    نقل قول: مشکل در ارسال byte[] به WCF

    سلام به همه
    محسن جان! قضیه پیچیده شد؟!؟!؟
    مشتاق شدم که این مسئله رو حتما و دقیقا بشناسیم.
    من کد خودم رو از یه کامپیوتر دیگه دانلود کردم و اونجا هم امتحان کردم.(تصاویر ضمیمه)
    شما مشکل رو تو کجا پیدا کردی؟ چی بود؟ چی شد؟ چی کار کردی که رفع شد؟ یه کم توضیح بده! (اشاره به سوال سوم پست شما 7 همین تاپیک)
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 1.JPG‏ (26.5 کیلوبایت, 41 دیدار)
    • نوع فایل: jpg 2.JPG‏ (43.2 کیلوبایت, 40 دیدار)
    • نوع فایل: jpg 3.JPG‏ (4.1 کیلوبایت, 41 دیدار)
    • نوع فایل: jpg 4.JPG‏ (7.7 کیلوبایت, 40 دیدار)

  10. #10

    نقل قول: مشکل در ارسال byte[] به WCF

    سلام خدمت همه دوستان
    آقای تقوی جوی عزیز لینک سایتی رو که نمونه پروژه رو داره براتون گذاشتم.
    http://www.silverlightchina.net/html/developer/silverlight/2010/1017/2702.html

  11. #11
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: مشکل در ارسال byte[] به WCF

    بابا اینجا چه خبره
    اونی که شما نشون میدی Exception اصلی نیست
    اول IncludeFaultExpection رو برابر True قرار بدین
    بعد اگه سرور رو IIS هاست شده؛ Debug رو Enable کنین
    بعد اون Exception اصلی رو نشون بدین !

  12. #12
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: مشکل در ارسال byte[] به WCF

    <compilation debug="true" targetFramework="4.0" />
    </system.web>

    <system.serviceModel>
    <behaviors>
    <serviceBehaviors>
    <behavior name="">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="true" />

  13. #13
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: مشکل در ارسال byte[] به WCF

    در ضمن Start Mode خود Solution رو بذارین رو Multiple ؛ و بعدش بگین اول Service رو اجرا کنه و بعد کلاینت رو
    هر دو رو هم تو مد Debug
    البته من خطایی نگرفتم؛ که به شما نشون بدم

  14. #14

    نقل قول: مشکل در ارسال byte[] به WCF

    ممکنه خیلی دیر شده باشه، ولی برای اونای دیگه ای که دنبال جوابشون میان اینجا میزارم.
    من هم مشکل مشابه ای داشتم که بخاطر اندازه زیاد آرایه بایتی که میخواستم ارسال کنم همین پیغام رو میداد.
    اینجا جوابشو پیدا کردم.
    http://forums.silverlight.net/forums/t/189294.aspx
    امیدوارم بدرد خورده باشه.

  15. #15
    کاربر دائمی آواتار taghvajou
    تاریخ عضویت
    تیر 1387
    محل زندگی
    تهران
    سن
    36
    پست
    571

    نقل قول: مشکل در ارسال byte[] به WCF

    سلام به همه
    ممنون از اینکه حتی دیدین که یه تاپیک کهنه شده ولی باز هم تجربه تون رو انتقال میدین. با اجازه تون من یه کمی کاملتر کنم.

    مطلبی که شما بهش اشاره کردین خیلی مفید بود. ممنون

    میخوام تکمیل تر کنم.
    شروع از اضافه کردن زمان تایم آوت ارسال، دریافت، باز کردن و بستن سرویسه. یعنی:
        <system.serviceModel>
    <bindings>
    <customBinding>
    <binding name="CustomBinding_DMSService" receiveTimeout="00:05:00" sendTimeout="00:05:00" openTimeout="00:05:00" closeTimeout="00:05:00">
    <binaryMessageEncoding />
    <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/>
    </binding>
    </customBinding>
    </bindings>
    این مقادیر رو تو سند تنظیمات کلاینت ارجاعی سرویس (ServiceReferences.ClientConfig) در بخش سیلورلایت پروژه پیدا کرد. (البته بعد از اینکه سرویس به رفرنسهامون اضافه شده).

    نکته اول اینکه مقدار بیش از پنج دقیقه اعمال نمیشه. شما هر چه قدر هم عدد بزرگتری بدین سرویس نهایتا همون 5 دقیقه رو در نظرمیگیره. چراش رو نمیدونم (منبع: داکیومنت مایکروسافت - تجربه و آزمون خطای شخصی)
    عکس شماره یک:
    1.jpg
    نکته دوم:

    مشکل انتقال اطلاعات حجیم رو فقط با زیاد کردن مدت زمان تایم آوت نمیشه رفع کرد چون گاهی بسته ای که فرستاده میشه خودش بزرگه! مثلا شما حالتی رو در نظر بگیرین که یه کالکشن دارین که اطلاعات 5000 تا کاربر رو تو اون میخواین انتقال بدین.
    اینجا موقعی که آبجکتمون (هر چند در قالب یه سند ایکس ام ال) سریالایز میشه و با سرویس فرستاده میشه به طرف کلاینت ولی اگه این آبجکت بزرگ باشه باز هم به مشکل برمیخورین.

    یه نگاهی به جزئیاتی که از سند سرویس رفرنس براتون دادم بکنید. یه مقدار 2147483647 بایتی برای حجم بیشینه پیام نوشته شده تو
    maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"

    لازمش اینکه تو سند تنظیمات بخش وب هم یه تغییر داده بشه، یعنی تو سند Web.config تو پروژه وب سالوشن که این مقدار به عنوان حجم قراردادی شی انتقالی تعریف بشه:

    <system.serviceModel>
    <behaviors>
    <serviceBehaviors>
    <behavior name="">
    <serviceMetadata httpGetEnabled="true" />
    <serviceDebug includeExceptionDetailInFaults="false" />
    <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    </behavior>
    </serviceBehaviors>
    </behaviors>
    <bindings>
    <customBinding>
    پس کافیه که یه خط به وب کانفیگ اضافه بشه :<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
    به عکس زیر توجه فرمایین:
    2.jpg

    نکته موجود تو اون تاپیک که دوستمون اشاره کردن تو آرای ها جواب میده و برای اشیا صادق نیست که در اون صورت در کار با یه لیست ( همون یه شی از کلاس آبزروال کالکشن تو سیلورلایت) باز هم مشکل به قوت خود باقی می مونه

    امیدوارم که توضیحات تکمیلی مفید بوده باشه. التماس دعا
    آخرین ویرایش به وسیله taghvajou : دوشنبه 18 بهمن 1389 در 21:31 عصر دلیل: التماس دعا یادم رفته بود

  16. #16

    نقل قول: مشکل در ارسال byte[] به WCF

    با اینکه قدیمی بود استفاده کردم ممنون
    آخرین ویرایش به وسیله Sahar.Sari : یک شنبه 28 خرداد 1396 در 11:22 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •