PDA

View Full Version : Could not find a part of the path "d:\"



raravaice
شنبه 13 بهمن 1386, 17:42 عصر
سلام

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



Dim a As System.IO.Directory
a.CreateDirectory(Server.MapPath("/dddd"))


ایراد گرفته شده



Could not find a part of the path "d:\"


علت این مشکل عدم داشتن permission read attributes
که با مسئول سرور در میان گذاشته شده ولی میگه مسئله امنیتی داره و این پرمیشن رو نمی تونه در اختیار من بزاره.

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

raravaice
شنبه 13 بهمن 1386, 18:48 عصر
با سلام

پس از بررسی در چندین فروم خارجی راهی که پیشنهاد شده اینه :



<DllImport("msvcrt.dll")> Public Shared Function _mkdir(ByVal path As String) As Integer
End Function

....

_mkdir(Server.MapPath("/dddd"))



آیا این کار عواقب دیگری ندارد؟

Behrouz_Rad
شنبه 13 بهمن 1386, 23:16 عصر
این یک مشکل قدیمی هست که در ASP.NET 1.x وجود داشت و اگر جستجو می کردی 2 سال قبل بدین موضوع پرداخته بودم ;)
دلیل اصلی این مشکل اینه که متد CreateDirectory برای اجرا نیاز به سطح دسترسی به کلیه ی مسیر از ریشه ای اصلی درایو داره و اگر ادمین به شما این مجوز رو بده یعنی دو دستی هاست رو به شما تقدیم کرده! این یک باگ هست که برای اون Patch ای داده شد و احتمالا هاست شما خودش رو آپدیت نکرده.
همون طور که گفتی، راه حل موقتی که بدین منظور پیشنهاد میشه استفاده از تابع Unmanaged mkdir هست که نیاز به دسترسی به API داره که اگر هاست بهت اجازه ی اجرای Unmanaged Code رو میده می تونه به طور موقت ازش استفاده کنی.

موفق باشید.

raravaice
یک شنبه 14 بهمن 1386, 09:37 صبح
به طور موقت ازش استفاده کنی
چون این برنامه ای که الان چنین مشکلی داره من سال 83 با دات نت 1 نوشتمش و به خوبی روی iranhost کار میکرد حالا مشترک من هاستش رو عوض کرده منم در توانم نیست که بخواهم کل برنام رو بیارم روی 2 یا 3 منظور شما از موقت چیه و چه patch باید نصب بشه !؟
شماره hotfix رو به من بگید ممنون میشم."محظ اطلاع" (:|

و سئوال بعد اینکه آیا این کار عواقب بعدی نداره که بعدها مجبور بشم دوباره تغییرات دیکه ای رو تو برنامه ایجاد کنم؟

Behrouz_Rad
یک شنبه 14 بهمن 1386, 09:58 صبح
شماره hotfix رو به من بگید ممنون میشم.
شمارش یادم نیست! با نصب سرویس پک مشکل برطرف میشه.
همون که گفتم این مشکل در ASP.NET 1.x وجود داره. از اونجایی که هاست خودش رو به دات نت 2.0 آپگرید کرده، حوصله ی نصب Patch برای ASP.NET 1.x رو نداشته!

سئوال بعد اینکه آیا این کار عواقب بعدی نداره که بعدها مجبور بشم دوباره تغییرات دیکه ای رو تو برنامه ایجاد کنم؟
نه عواقبی نداره... استفاده از Unmanaged Code در مواردی اجتناب ناپذیر هست.

موفق باشید.