سؤال

أحاول الوصول إلى الملفات في دليل افتراضي قمت بإنشائه في IIS لأول مرة ، لكنني أحصل على نتائج غريبة.

OS: Windows XP Pro

IIS: 5.1

منصة التطوير: Visual Studio 2008

اللغة: ج#

اسم الدليل الافتراضي: البوابة

المسار المحلي: C: digital_communications_report_portal

موقع الويب الافتراضي المسار المحلي: C: inetpub wwwroot

يمكنني تنزيل الملف على http: //localhost/portal/testfile.xlsx بدون اي مشكلة.

أحاول أي من هؤلاء

string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));

واحصل على "C: المستندات والإعدادات jJohnson My Documents Visual Studio 2008 Websites ClientiTITE localhost portal testfile.xlsx" وهو مسار مشروعي مع المسار الظاهري الصفع في النهاية وليس مسارًا صحيحًا . أحاول أخذ Tilde أو LocalHost وأحصل على "فشل في تعيين المسار"/portal/testfile.xlsx ". استثناء.

أي أفكار ما أفعله خطأ؟

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

المحلول

اذا لم اكن مخطئ، Server.MapPath(ResolveUrl("~/relative/path/to/file")) ليس ما تريد. سوف ينتج /rooted/path/to/file التي عندما تنتقل إلى Server.MapPath() لن تسفر عن موقع صالح.

بدلا من ذلك ببساطة استخدام Server.MapPath("~/relative/path/to/file");

تحديث

تكمن المشكلة التي تواجهها في حقيقة أنك تضمن اسم الدليل الافتراضي ("البوابة") في عنوان URL النسبي. لا يحتاج عنوان URL النسبي إلى تحديد اسم الدليل الظاهري ، فقط المسار إلى الملف المطلوب بالنسبة إلى جذر التطبيق.

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