مشکل در دسترسی برنامه به پوشه در درایو C
با سلام
یه برنامه نوشتم با سی شارپ و بانک sql----- وقتی رو درایو C(درایو ویندوز) نصب می کنم برنامه به دلیل محدودیت دسترسی، با بانک اطلاعاتی ارتباط برقرار نمی کنه... در صورتی که تمامی تنظیمات UAC و Run as administrator را انجام دادم و حتی توی یوزر adminstrator ویندوز هم نصب کردم ولی باز مشکل داره. وقتی روی درایو دیگه ای نصب می کنم به طور کامل اجرا میشه و با بانک ارتباط برقرار می کنه...
جالب اینجاست که اگه تو پوشه program files نصب نکنم ، برنامه هیچ مشکلی نداره و به خوبی کار میکنه...
به نظر اساتید مشکل کجاست و باید چطور حلش کنم؟
یه راه حل خودم پیدا کردم و اینکه رو پوشه برنامه خودم که تو program files نصب شده کلیک راست می کنم و از قسمت security دسترسی رو روی full control بزارم ولی من میخوام وقتی برنامه نصب میشه دیگه نیاز به دستکاری تنظیمات توسط کاربر نباشه؟
کمک؟؟؟؟
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
اگه از SQL Server استفاده میکنید باید به کاربر NT AUTHORITY\NETWORK SERVICE اجازه دسترسی به پوشه مورد نظر رو بدین.این کار رو میتونید موقع نصب با اجرای فایل (calcs (Access Control List Editor و یا توسط #C و کلاس ها System.IO.Directory انجام بدین و البته مطمئن بشین که فایل های دیتابیس Read-Only نیستن.
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
با اجرای فایل calcs (Access Control List Editor مشکل حل شد.
به خاطر راهنماییتون ممنونم:تشویق:
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
سلام منم دقیقا همین مشکل رو دارم شما چه مراحلی رو انجام دادین که مشکلتون حل شد اگه میشه بیشتر توضیح بدین
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
با سلام
من تو C# با کد زیر دسترسی full control برای یوزر Everyone ایجاد میکنم و مشکلم حل میشه... شما هم امتحان کن ببینید کار میده یا نه؟
به جای Application.StartupPath می تونید آدرس پوشه موردنظر خودتون رو بدید.
try
{
string userName = "Everyone";
FileSystemAccessRule accessRule = new FileSystemAccessRule(userName, FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit
| InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
DirectoryInfo directoryInfo = new DirectoryInfo(Application.StartupPath);
DirectorySecurity directorySec = directoryInfo.GetAccessControl();
directorySec.AddAccessRule(accessRule);
directoryInfo.SetAccessControl(directorySec);
}
catch (Exception error)
{
MessageBox.Show(error.Message + "خطا در اجرای کد");
}
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
نقل قول:
نوشته شده توسط
Imenam
با سلام
من تو C# با کد زیر دسترسی full control برای یوزر Everyone ایجاد میکنم و مشکلم حل میشه... شما هم امتحان کن ببینید کار میده یا نه؟
به جای Application.StartupPath می تونید آدرس پوشه موردنظر خودتون رو بدید.
try
{
string userName = "Everyone";
FileSystemAccessRule accessRule = new FileSystemAccessRule(userName, FileSystemRights.FullControl,
InheritanceFlags.ContainerInherit
| InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
DirectoryInfo directoryInfo = new DirectoryInfo(Application.StartupPath);
DirectorySecurity directorySec = directoryInfo.GetAccessControl();
directorySec.AddAccessRule(accessRule);
directoryInfo.SetAccessControl(directorySec);
}
catch (Exception error)
{
MessageBox.Show(error.Message + "خطا در اجرای کد");
}
این کد رو کجای برنامه باید نوشت؟؟؟؟
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
نقل قول:
نوشته شده توسط
parsa_7373
این کد رو کجای برنامه باید نوشت؟؟؟؟
بهتره در Program.cs باشه
نقل قول: مشکل در دسترسی برنامه به پوشه در درایو C
نقل قول:
نوشته شده توسط
Shadow_net
بهتره در Program.cs باشه
سلام من دارم یه برنامه ساختم براش اپدیت اتوماتیک گذاشتم ولی وقتی داخل درایو c نصب میکنم موقع اپدیت فایل اپدیت دانلود میشه ولی جایگزین فایل اصلی نمیشه درصورتی که وقتی داخل یه درایو دیگه نصب میکنم اوکیه
که با خودم گفتم شاید بخاطر دسترسی درایو c باشه این کدی که شما گذاشتین رو امتحان کردم ولی کار نکرد ممنون میشم راهنمایی کنید
یجا دیگه هم باز به همین مشکل برخوردم اینکه وقتی میخوام داخل برنامه از پایگاه داده فایل پشتیبان تهیه کنم رو درایو c اجازه نمیده و ارور میده