سؤال

أحتاج إلى استخدام Server.MapPath() للجمع بين بعض مسارات الملفات التي أخزنها في web.config.

لكن منذ Server.MapPath() يعتمد على httpcontext الحالي (على ما أعتقد)، لا أستطيع القيام بذلك. عند محاولة استخدام الطريقة، على الرغم من أنها "متوفرة"، أحصل على الاستثناء التالي:

عملية الخادم غير متوفرة في هذا السياق.

هل هناك طريقة أخرى يمكنها تعيين الدليل النسبي الجذر على الويب مثل ~/App_Data/ إلى المسار المادي الكامل مثل C:\inetpub\wwwroot\project\App_data\ ?

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

المحلول

بامكانك ان تحاول system.web.hosting.hostingenvironment.mappath ().

لا httpccontext المطلوبة.

نصائح أخرى

يستخدم AppDomain.CurrentDomain.BaseDirectory لأن Context قد يعود null !!

عندما تكون في global.asax، استخدم سياق الكلام هدف:

context.server.mappath ()

يتيح لك السياق الوصول أيضا إلى مجموعة الجلسة، وكائن الطلب، وكائن الاستجابة. مفيد جدا عندما تريد تسجيل الأخطاء، على سبيل المثال

يمكنك تجربة httpccontext.current.server.mappath ("/") - هكذا أشارت إليه من قبل في الفصول الدراسية.

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