הרשאות?

Zeliran

New member
הרשאות?

כל פעם שאני נותן פקודה ליצור איזשהו קובץ ב asp.net אני מקבל הודעת שגיאה שאין לי הרשאות לבצע את הפעולה הZאת איפה אני יכול לתת לפרויקט הרשאות כאלה?
 

yuval k

New member
אתה צריך לדאוג להרשאות למשתמש

שמריץ את הפרוסס של ASP.net.
 

Zeliran

New member
no go..

ההודעה המלאה היא Access to the path ______is denied נכנסתי ל IIS, להגדרות של הפרויקט ושל החשבון משתמש ונתנתי כל ההרשאות של write browse וכדומה... (ועדיין אני מקבל את ההודעה..) מה אני מפספס?
 

gilad g

New member
../images/Emo128.gif לא לא לא../images/Emo70.gif

תשנה מהר מהר חזרה את ההגדרות ששינית ב-IIS
זה ייתן לכל האקר ממוצע לשנות לך את תוכנם של הקבצים. ההרשאות היחידות שאתה צריך שם הן read ואולי גם execute, אבל לא יותר מזה. הכוונה היא לשנות את ההגדרות ברמת NTFS... אתה צריך לתת ליוזר ששמו aspnet (זה השם הדיפולטי שלו) הרשאות כתיבה. את זה עושים ע"י לחיצה ימנית על התיקיה, Properties, ובחירה בלשונית Security. אני מניח שמכאן החלונות די מסבירים את עצמם
 

Zeliran

New member
זה מה שחשבתי..

שיניתי גם את ההגדרות שציינת וזה לא עוזר (גם חשבתי שזה מוזר לתת הרשאות כאלה..) וגם ממקודם יש את ההרשאה aspnet לתיקייה.. לפני שהיתה ההרשאה הזאת בכלל לא יכלתי לקמפל..
 
אם יש הרשאת כתיבה ב directory,

אתה אמור להצליח ליצור קבצים. מה הפקודה שבה אתה משתמש על מנת ליצור את הקובץ ?
 

Zeliran

New member
../images/Emo41.gif כמה תשובות ובעיות ../images/Emo41.gif

יצרתי אובייקט של FileInfo כאשר שלחתי אותו למתודה Create קיבלתי את ההודעה שגיעה שצרפתי... (תמונה..) הגדרתי ב IIS שיהיה אפשר גם Write לפרוייקט, אבל עדיין..
 

gilad g

New member
תראה את השורה

שבה אתה מצהיר על הקובץ שאתה עומד לפתוח (כלומר השורה שבה רשום שם הקובץ).
 

Zeliran

New member
הנה..

די פשוט..
private FileInfo fi = new FileInfo("results.arr");​
ובשלב מסויים בקוד אני יוצר אותו בעזרת Create אני נתקל באותה הבעיה גם כשאני מנסה ליצור קבצים בדרכים אחרות למשל ב serialize..כשאני בוחר שהקובץ יהיה Create\append וכו'... גם שם אני נתקל בבעיה
 

yuval k

New member
זה בגלל שהוא מנסה ליצור אותו ב-

system32, כמו שראית בהודעת השגיאה
השתמש ב-Server.MapPath כדי לקבל את הנתיב הנכון.
 

yuval k

New member
אתה לא

אתה צריך להעביר את הנתיב שאתה נותן עכשיו (שיחסי לאפליקציה שלך) דרך Server.MapPath כדי שהוא ימצא את הנתיב המוחלט שלו. אחרת הוא "חושב" שאתה מתכוון לתיקיית system32.
 

Zeliran

New member
???

איך אפשר לקבוע את זה? איפה? בהודעה הקודמת שנתנת לי, ושלחתי אותי למאמר ב msdn, אז זה תקף לגבי ה fileInfo
 

yuval k

New member
../images/Emo26.gif

private FileInfo fi = new FileInfo(Server.MapPath("results.arr"));​
 

Zeliran

New member
../images/Emo41.gif אז עכשיו..

אני מקבל את ההודעה:
The process cannot access the file "C:\IIS\Seker\results.arr" because it is being used by another process.​
 
למעלה