سؤال

أحاول تقديم مستندات Excel التي قمت بتخزينها في قاعدة بيانات عبر موجز WCF RSS (ينقر المستخدم على رابط في الخلاصة ويرسل مستند Excel محددًا).

لا توجد ملفات Excel في دليل في أي مكان (وفي هذه الحالة يمكنني فقط منح كل مستخدم عنوان URL ثابتًا).

إذن ما أود فعله هو الحصول على عنوان URL تم إنشاؤه ديناميكيًا في موجز RSS (والذي يشير إلى معرف المستند).عندما ينقر المستخدم على URI، ينتقل إلى خدمة ويب WCF التي تقوم بإلغاء تسلسل مستند Excel من قاعدة البيانات وإرساله إلى المستخدم (سيحصل على مربع حوار فتح/حفظ مستند Excel القياسي).

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

لاحظ أنني أستخدم WCF المستضاف على IIS 7.0.

شكرا جزيلا مقدما!

هل كانت مفيدة؟

المحلول

لا تقدم الكثير من المعلومات المحددة ولكن من المحتمل أنك لم تقم بتعيين نوع MIME.لست متأكدًا مما قمت به بالفعل ولكن يمكنك فعل ما تريد باستخدام نموذج برمجة الراحة WCF.

النقاط الرئيسية هي:

  • قم بإرجاع دفق على الواجهة الخاصة بك
  • ضبط نوع MIME:WebOperationContext.Current.OutgoingResponse.ContentType = "application/vnd.ms-excel";
  • استخدم WebHttpBinding وWebHttpBehavior

يحتوي MSDN على مثال كامل يقوم بإرجاع ملف JPEG والتي يجب أن تفعل ما تريده بالضبط (باستثناء تغيير نوع JPEG MIME إلى نوع Excel MIME على النحو الوارد أعلاه).

حظ سعيد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top