locked
שאלה ב ASP.NET דחוףףף RRS feed

  • שאלה

  • היי ,

     סיימתי לבנות מערכת ניהול   net framework 3.5 ,      visual studio 2010    

    בצורת אתר asp.net עם    DATABASE -    Sql Server 2008

    איך אני יכול לעבוד איתה במחשב אחר !! כאילו להתקין אותה במחשב אחר עם קיצור דרך על המסך .

    להוסיף נתונים למחוק לעדכן דרך ה database כמובן ...

    אז מה שהבנתי שצריך להתקין שרת מקומי ......

    התקנתי iis ב windows 8 

    אבל עדיין לא עובד לי ..

    1-איך אני מריץ שאלתות sql 2008 ?
    2-מה צריך לרשום ב web config + connection string ? 
    ואם יש עוד הגדרות שצריך להגדיר , או תוכנות שצריך להתקין

    תודה...

    יום שלישי 29 אוקטובר 2013 20:44

תשובות

  • טוב הבנתי עכשיו, אני חושב :-)

    בוא נסכם מה אתה צריך:

    1. אתה צריך להתקין את גרסת ה דוט-נט המתאימה לאפליקציה שלך. למשל אם פיתחת בדוט נט 4 אז צריך לוודא שמותקן דוט נט 4 וכן הלאה (במערכות הפעלה ישנות יותר מ windows 2012 לא מותקן דוט 4 בברירת המחדל).

    2. אתה צריך להתקין IIS מכיוון שאתה מפתח אפליקציה עבור ה IIS (אתר אינטרנט מוםעל על ידי שירות ה IIS שמנהל את הפניות של הלקוחות (דפדפנים). אחרי שהתקנת תבדוק קודם שאתה יכול להריץ קובץ פשוט של asp.net כדי לווקא שכל ההדרות מתאימות.

    3. אתה רוצה לעבוד עם מסד נתונים של SQL SERVER לפי מה שאני מבין, ולכן אין ברירה :-) אתה צריך להתקין SQL SERVER. בעקרון לאפליקציות כמו שאתה מתאר אמור להספיק לך הגרסה החינמית. כשתתקין את ה SQL SERVER תוודא שאתה מתקין גרסה הכוללת SSMS למרות שזה לא חובה. אולי לאנשי מקצוע עם הרבה נסיון הייתי ממליץ לא להתקין ולעבוד מרחוק אבל אני מאוד ממליץ לך בשלב זה להתקין את הכלי מקומית כדי שתוכל להתחבר לשרת ה SQL גם אם החיבור מרחוק לא יעבוד.

    הערה: הדרך היותר נכונה ויותר מקצועית היא להתקין שרת SQL ייעודי במחשב נפרד, אבל כאמור אני מניח לאור השאלות והתיאור שלך שבשלב זה אתה יכול ויותר קל יהיה לעבוד עם שרת מקומי.

    4. תתחבר בעזרת ה SSMS לשרת ה SQL לוודא שהכל עובד

    5. תעביר את האפליקציה שלך תוך הגדרת אתר חדש.

    * כיביכול אתה חוסך בסך הכל התקנה של ה VS אבל בעצם ה SSMS החל מגרסת 2008 הוא בעצמו ADD-ON של ה VS ואם תבדוק תגלה שמותקן לך VS בגרסה ישנה. זה נוח כי זה יעזור לך ם לעבוד על עריכה בשרת החי אם תהיה צריך משהו קטן

    בשלב 5 עלולות להיות בעיות אולי וכדאי למצוא מדריך טוב עם תמונות לכל שלב ולכל התקנה, אבל כמובן אנחנו כאן אם יש שאלות בהמשך העבודה (אם אני לא כאן אז אני בפורום דוט-נט C# אבל אני מנסה לבקר גם בפורומים האחרים ויש מספיק אנשים אחרים שיוכלו לעזור בכל מקרה)

    אני מקווה שזה עוזר להבין את המצב :-)


    [Personal Site] [Blog] [Facebook]signature

    • הוצע כתשובה על-ידי tetitu יום ראשון 03 נובמבר 2013 14:07
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 03 נובמבר 2013 14:41
    יום רביעי 30 אוקטובר 2013 16:26
    משיב
  • אוקי

    * חבל שצירפת תמונה של שרשרת ההתחברות ולא את הטקסט כדי שנוכל לעהתיק כל קטע ולהסביר מה קורה.

    ניראה שהכל מותקן טוב.
    אני רואה מSSMS ומשרשרת ההתחברות שאתה מנסה לעבוד עם מסד נתונים שנמצא בשרת (attach) ולא מסד נתונים שנמצא בפרוייקט עצמו (זה טוב בעקרון לדעתי).

    * האם ניסת ליצור עמוד חדש ולהתחבר ישירות למסד הנתונים בלי שימוש בקובת הקונפיגורציה?
    אם לא אז הגיע הזמן

    הגיע הזמן לשחק עם שרשרת ההתחברות שהיא לא מתאימה למצב שלך :-)

    הערה: לעולם אל תעבוד עם המשתמש sa לעבודה שוטפת

    תגדיר משתמש חדש בשרת, תן לו הרשאות OWNER על מסד הנתונים ותעבוד איתו. מומלץ לכל אפליקציה לעבוד עם משתמש מיוחד שלה מטעמי אבטחה.

    עם איזה משתמש התחברת ל SSMS (אל תגיד את הססמה אלא רק תודא שאתה יודע מי זה ותגיד לנו אם זה משתמש של מערכת ההפעלה או משתמש של ה SQL), ומה כתבת בכניסה במקום של ה server name ?
    אנחנו צריכים את הנתון כדי לעבוד איתו גם בשרשרת ההתחברות.
    * אם ייצרת משתמש חדש מיוחד לאפליקציה אז תבדוק שאתה יכול להתחבר איתו ל SSMS תחילה.

    עבור בינתיים על הקישור הבא:
    http://www.connectionstrings.com/sql-server-2008/

    וכן על הקישור הבא:
    http://www.connectionstrings.com/sql-server-2012/

    יכול להיות שתמצא לבד את התשובה שם :-)
    התשובה נמצאת שם דרך אגב... רק צריך לחפש לפי הנתונים בהם אתה הגדרת את השרת


    [Personal Site] [Blog] [Facebook]signature

    • נערך על-ידי pituachMVP, Editor יום שלישי 19 נובמבר 2013 17:46
    • סומן כתשובה על-ידי abd azim יום חמישי 21 נובמבר 2013 11:32
    יום שלישי 19 נובמבר 2013 17:44
    משיב
  • התמונה מביאה לנו נתונים טובים:

    1. אנחנו יודעים עכשיו מה השם של ה INSTANCE

    2. אתה מתחבר עם המשתמש של מערכת ההפעלה ולא משתמש של שרת ה SQL

    אבל בשרשרת ההתחברות שלך אתה מנסה להתחבר עם המשתמש SA

    בזמן ההתקנה של השרת היה לך אפשרות לבחור Authentication Mode. כדאי לוודא שהשרת מוגדר לעבוד עם Mixed Mode. זה אומר התחברות גם כמשתמש מערכת ההפעלה וגם כמשתמש של ה SQL.

    תוכל לקרוא יותר על הנושא כאן:
    http://www.hosting.com/support/windows-vps/mixedmode/

    תוודא שאתה מגדיר את השרת לעבוד ב MIX, תתחבר לשרת עם האדמין של מערכת ההפעלה, צור משתמש חדש ותן לו הרשאות OWNER על מסד הנתונים של האפליקציה.

    ואז תוכל לעבוד עם שרתשרת ההתחברות עם הנתונים של שם המשתמש החדש והססמה שלו.

    עבור על הקישור האחרון שנתתי לך ונסה למצוא את השרשרת התבחרות המתאימה לך. הבחירה אפשרית רק אחרי שיודעים מה ההגדרות שלך

    למשל אם אתה רוצה להתחבר עם משתמש שמוגדר בשרת ה SQL (כמו שהמלצתי) אז אתה צריך כמובן להכניס את השם משתמש והססמה שלו. במקרה זה אתה לא עובד כמו השרשרת של EXPRESS אלא כמו התחברות לשרת רגיל.

    הנה שתי דוגמאות נפוצות ביותר בעבודה עם web.config עם הסבר קצר:

      <connectionStrings>
        <add name="SiteSqlServer" 
    	 connectionString="
     Data Source=ABDAZIM\sqlexpress;
     Initial Catalog=Database_Name;
     User ID=User_Name;
     Password=xxxxxxx
    " providerName="System.Data.SqlClient"
    /> <add name="ariely_infoConnectionString" connectionString="
     Data Source=.;
     Initial Catalog=Database_Name;
     Integrated Security=True" providerName="System.Data.SqlClient"
    /> </connectionStrings>

    אבל אני מדגיש שעלייך קודם לוודא שאתה כיכול לעבוד ישירות בלי ה web.config ולכן מה שחשוב זה החלק של שרשרת ההתחברות! את שרשרת ההתחברות תרשום בשורה אחת בלי מעברי שורה כמו שאני רשמתי כאן רק לשם ההסבר.

    שים לב לנקודות הבאות:

    name יכול להיות כל שם שרוצים (אנגלית כמובן בהתאם לחוקי שמות). זה השם באמצעותו האפליקציה ניגשת לאלמנט הנוכחי. יכולים להיות כמה אלמנטים של connectionStrings באותה אפליקציה.

    connectionString זה החלק המרכזי, אני אפרט את הפרמטרים הפנימיים בדוגמה:

    Data Source הוא השם בעזרתו התחברת ב SSMS וכולל את שם המחשב ושם ה INSTANCE של השרת SQL. לכן צריך להיות זהה בדיוק למה שרואים בתמונה שלך כשאתה מתחבר דרך ה SSMS. במקרה הראשון אנחנו עובדים עם שם מפורש ובמקרה השני עובדים עם ה INSTANCE של ברירת המחדל (לא תמיד מוגדר ולכן תמיד עדיף לעבוד עם שם מפורש). 

    Initial Catalog זהו השם של מסד הנתונים אליו אתה רוצה להתחבר

    User ID הוא השם של המשתמש שייצרת ב SQL (לא במערכת ההפעלה בדוגמה כאן!) לפני שאתה מתחיל תבדוק שהמשתמש החדש שלך יכול להתחבר ל SSMS!

    Password הששמה כמובן של המשתמש

    providerName תשמש בדיוק במה שיש כאן (כדאי בהמשך ללמוד ולהבין מהו ה provider כחלק מתהליך הלמידה. יש אפשרות לעבוד עם ספקים אחרים אבל זה המועדף בגישה לשרתי SQL)

    במקרה השני שים לב שאנחנו לא רושמים שם משתמש וססמה ובמקום זה רושמים:
    Integrated Security=True

    זה אומר שמי שמפעיל את האפליקציה הוא המשתמש שגם מתחבר לשרת ה SQL והכוונה כמובן לשמוש במשתמש של מערכת ההפעלה. לכן אם אדמיניסטרטור מפעיל את האפליקציה אז הוא זה שמנסה להתחבר לשרת ה SQL וכניראה יצליח, אבל אם האפליקציה רצה ב IIS כמו במקרה של אתר אינטרנט אז המתמש שמריץ את האפליקציה מודר ב IIS.

    תעבוד לפי השיטה הראשונה. ואני שוב פעם חוזר על כך שלפני שאתה מתחיל תבדוק שהמשתמש החדש שלך יכול להתחבר ל SSMS! הכוונה לאותו משתמש שאתה רושם בשרשרת ההתחברות שלך


    [Personal Site] [Blog] [Facebook]signature

    • סומן כתשובה על-ידי abd azim יום חמישי 21 נובמבר 2013 11:33
    יום רביעי 20 נובמבר 2013 11:50
    משיב
  • היי

    1. הורדתי את הפרוייקט, אני לא יודע אם יהיה לי זמן אבל אם כן אז אני אנסה לעבור עליו מהר בסוף השבוע.

    2. לא ניתן לקרוא את הקוד שהעלת כאן, הוא בכתב קטן ואפור חלש. בכל מקרה הרעיון לא לקרוא את כל הקוד (את זה נוכל לעזות אם יהיה זמן ישירות מהפרוייקט) אלא לקבל ממך רק את שרשרת ההתחברות. הבנו כבר שהבעיה קשורה לשרשרת ההתחברות אם השרת SQL הותקן כיאות

    ביקשתי רק את שרשרת ההתחברות שלך ולא את כל העמוד.

    3. אפשר לפני שממשיכים לבדוק את הקוד לוודא שהשרת SQL הותקן כמו שצריך תחילה או במקביל. אם התקנת את הגרסה הכוללת את ה SSMS (תוכנת הניהול של השרת SQL) אז נסה להפעיל את התוכנה ולהתחבר לשרת.

    אם לא התקנת את התכונה של ה SSMS אז גש מהר להתקין אותה כי באמצעותה אתה תבצע פעולות רבות בהמשך.

    * במקביל נבדוק שהשירות של ה SQL רץ טוב. כדי לפתוח את רשימת השירותים במחשב הפעל את הפקודה services.msc

    run -> services.msc

    חפש שירות בשם SQL Server ולידו יופיע סוגריים עם שם נוסף. זה השירות המרכזי של השרת SQL. השם בסוגריים חשוב מאוד!!! זה השם של ה INSTANCE (המופע של השרת). ניתן להתקין כמה גרסאות של SQL וגם כמה פעמים את אותה גרסה, למעשה מה שמתקינים זה כל פעם INSTANCE נוסף של השרת. כדי להתחבר לשרת אנחנו צריכים את השם של ה INSTANCE בשרשרת ההתחברות.

    אם מצאת את השירות והוא רץ אז השרת כניראה פועל.

    ספר לנו מה המצב ומה התוצאה של כל בדיקה ובדיקה :-)


    [Personal Site] [Blog] [Facebook]signature

    • סומן כתשובה על-ידי abd azim יום חמישי 21 נובמבר 2013 11:32
    יום שלישי 19 נובמבר 2013 13:57
    משיב

כל התגובות

  • אני לא בטוח שאני מבין אותך כי השאלה שלך נשמעת מוזרה מאוד

    אתה שואל אותנו כיצד לעבוד עם מערכת שאתה פיתחת?!? אתה אומר שסימת לבנות, אז אני מניח שהיא עובדת על המחשב המקומי שלך. כיצד אנחנו אמורים להכיר אותה יותר טוב ממי שפיתח אותה?

    אני יכול לעזור לך להריץ אפליקציית WEB-ית על WIN8 באמצעות ה IIS אבל כיצד אוכל לעזור לך בשאלה כיצד להריץ שאילתות במערכת שאתה פיתחת??? אני יכול להגיד לך כיצד לעבוד עם המערכת שלי אבל זה לא יעזור לך כמובן :-)

    תנסה להסביר את השאלה בבקשה שוב ותפרט בדיוק מה אתה עשית ומה עובד אצלך במחשב ומה אתה רוצה שיעבוד במחשב אחר. תזכור שהרעיון של מערכת WEB-ית זה שאתה יכול לגשת אליה ממחשב מרוחק, כך שאין הגיון להתקין כלום על כל מחשב אלא רק על מחשב אחד שמשמש כשרת. כמו כן תבדוק האם אתר ברירת המחדל ב WIN 8 עובד לך אחרי שהתקנת את הIIS?


    [Personal Site] [Blog] [Facebook]signature

    יום שלישי 29 אוקטובר 2013 21:45
    משיב
  • במידה וזה עובד על בסיס נתונים מרכזי אז אתה צריך גישה אל בסיס הנתונים.

    את ההגדרה של ה connection string אתה יכול ליצור ע"י קובץ UDL

    http://msdn.microsoft.com/en-us/library/e38h511e(v=vs.71).aspx

    ואז לראות את התוכן ב notepad

    אם אתה צריך את בסיס הנתונים מקומי אז צריך שיהיה מותקן SQL על המחשב המקומי ומומלץ גם להתקין את ה management studio.

    יום רביעי 30 אוקטובר 2013 06:47
  • אני אסביר את עצמי ... 
    בניתי אתר (ניהול חנות מחשבים),(כאילו מערכת ניהולית למנהל החנות) asp.net  ב- visual studio 2010 
    שזה בעצם (הוספת,עדכון,מחיקת) מוצרים שזה עובד עם DATABASE  של SQL SERVER 2008 
    עכשיו ,במחשב האישי שלי אני מריץ את האתר דרך VISUAL STUDIO והכל סבבה.

    כרגע אני רוצה לעבוד עם האתר(המערכת) הזו בחנות שלי נגיד
    קיצור(אני לא צריך להתקין כל הבלגן למעלה ... VISUAL STUDIO ן SQL SERVER .......) 

     אז מה שהבנתי שאפשר להתקין IIS במקום כל התוכנות למעלה .....

    תודההה 

    יום רביעי 30 אוקטובר 2013 14:12
  • טוב הבנתי עכשיו, אני חושב :-)

    בוא נסכם מה אתה צריך:

    1. אתה צריך להתקין את גרסת ה דוט-נט המתאימה לאפליקציה שלך. למשל אם פיתחת בדוט נט 4 אז צריך לוודא שמותקן דוט נט 4 וכן הלאה (במערכות הפעלה ישנות יותר מ windows 2012 לא מותקן דוט 4 בברירת המחדל).

    2. אתה צריך להתקין IIS מכיוון שאתה מפתח אפליקציה עבור ה IIS (אתר אינטרנט מוםעל על ידי שירות ה IIS שמנהל את הפניות של הלקוחות (דפדפנים). אחרי שהתקנת תבדוק קודם שאתה יכול להריץ קובץ פשוט של asp.net כדי לווקא שכל ההדרות מתאימות.

    3. אתה רוצה לעבוד עם מסד נתונים של SQL SERVER לפי מה שאני מבין, ולכן אין ברירה :-) אתה צריך להתקין SQL SERVER. בעקרון לאפליקציות כמו שאתה מתאר אמור להספיק לך הגרסה החינמית. כשתתקין את ה SQL SERVER תוודא שאתה מתקין גרסה הכוללת SSMS למרות שזה לא חובה. אולי לאנשי מקצוע עם הרבה נסיון הייתי ממליץ לא להתקין ולעבוד מרחוק אבל אני מאוד ממליץ לך בשלב זה להתקין את הכלי מקומית כדי שתוכל להתחבר לשרת ה SQL גם אם החיבור מרחוק לא יעבוד.

    הערה: הדרך היותר נכונה ויותר מקצועית היא להתקין שרת SQL ייעודי במחשב נפרד, אבל כאמור אני מניח לאור השאלות והתיאור שלך שבשלב זה אתה יכול ויותר קל יהיה לעבוד עם שרת מקומי.

    4. תתחבר בעזרת ה SSMS לשרת ה SQL לוודא שהכל עובד

    5. תעביר את האפליקציה שלך תוך הגדרת אתר חדש.

    * כיביכול אתה חוסך בסך הכל התקנה של ה VS אבל בעצם ה SSMS החל מגרסת 2008 הוא בעצמו ADD-ON של ה VS ואם תבדוק תגלה שמותקן לך VS בגרסה ישנה. זה נוח כי זה יעזור לך ם לעבוד על עריכה בשרת החי אם תהיה צריך משהו קטן

    בשלב 5 עלולות להיות בעיות אולי וכדאי למצוא מדריך טוב עם תמונות לכל שלב ולכל התקנה, אבל כמובן אנחנו כאן אם יש שאלות בהמשך העבודה (אם אני לא כאן אז אני בפורום דוט-נט C# אבל אני מנסה לבקר גם בפורומים האחרים ויש מספיק אנשים אחרים שיוכלו לעזור בכל מקרה)

    אני מקווה שזה עוזר להבין את המצב :-)


    [Personal Site] [Blog] [Facebook]signature

    • הוצע כתשובה על-ידי tetitu יום ראשון 03 נובמבר 2013 14:07
    • סומן כתשובה על-ידי Eran Sharvit יום ראשון 03 נובמבר 2013 14:41
    יום רביעי 30 אוקטובר 2013 16:26
    משיב
  • תודה רבה כמעט עשיתי הכול 
    אבל עדיין יש לי בעיה 
    כשאני רושם בדפדפן 

    localhost/kletat_ovdem/Login.aspx

    יש טעות כנראה ב WEB CONFIG

    HTTP Error 500.19 - Internal Server Error

    The requested page cannot be accessed because the related configuration data for the page is invalid.

    Config Source:

    13:<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">

    14:<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>

    מה זאת אומרת ? 

    שבת 16 נובמבר 2013 11:35
  • לא מכובד ולא מקובל בעיני שאתה מגיע רק לשאול שאלות. את התודה אומרים כשמקבלים עזרה ולא אחרי שבועיים כשבאים לקבל עזרה בפעם נוספת!

    אם אתה שם הודעה בפורום אז אתה אחראי לבדוק תגובות ולנהל את השרשור. העובדה שלא חזרת ואחראי הפורומים היה צריך לסמן את התשובה בשמך אינה הדרך הנאותה. כאשר אתה מקבל תשובה, אז מוקדם ככל הניתן עלייך להגיב ולהראות שקראת את התגובה לכל הפחות. האנשים שעוזרים כאן הם לא עובדים בחברת מיקרוסופט ולא מקבלים משכורת, הם באים לעזור על חשבון זמנם כתרומה לקהילה. יש לכבד זאת!


    [Personal Site] [Blog] [Facebook]signature

    שבת 16 נובמבר 2013 12:13
    משיב
  • סליחה שלא הגבתי בזמן ,ת'האמת הייתה לי בעיה באינטרנט ..
    שבת 16 נובמבר 2013 12:21
  • 1. קשה לי להאמין שיש מישהו שיכול לא להיות מחובר לאינטרנט כמה שבועות. יותר מכך, כיצד מישהו יכול לעסוק בפיתוח WEB בלי אינטרנט זה כבר בכלל שאלה מעניינת (למרות שיש מי שמפתחים ל Intarnet ולא ל internet).

    2. בכל מקרה: יעזור לדעת באיזה טכנולוגיה אתה עובד

    אמרת שאתה מפתי WEB אז אני מניח שאתה עובד עם asp.net אבל יש 2 טכנולוגיות שונות wefform ןכן MVC וכמו כן עלינו לדעת עם איזה מנוע צפייה אתה עובד asp.net או razor (אם אתה לא מבין את השאלה אז כניראה אתה עובד עם המנוע הישן יותר asp.net)

    3. האם אתה עושה שימוש בקונטרולים מוכנים (של מייקרוסופט למשל... ככה למשל קונטרול ה AJAX הישן ב webform עלול לעשות בעיות כאלה)?

    בינתיים תבדוק את הנושאים הבאים:

    * לפי הקוד אתה עובד עם גרסת דוט נט של 3.5 האם זה נכון? האם התוכנית שלך מפותחת בדוט נט 3.5 או גרסה מאוחרת יותר?
    - אין תאימות אחורה מגרסה 4

    * נסה לכתוב תוכנית קטנה שפונה ישירות למסד הנתונים, בלי לעשות שימוש בקובץ הקונפיגרציה על מנת להגדיר את מסד הנתונים. פשוט צור פרוייקט חדש -> צור דף צפייה חדש -> הכנסה בצורה קשיחה את הקוד: גש למסד הנתונים ותביא נתון כלשהו מטבלה.

    אם זה עובד אז נוכל לצמצם את הבעיה ואם זה לא עובד אז תחילה תוודא שאתה מצליח לגשת למסד הנצתונים מפרוייקט חדש ריק בצורה ישירה.
    בדוק את הקשור הבא: http://www.w3schools.com/aspnet/aspnet_dbconnection.asp

    אני מקווה שזה יוביל אותך לפתרון :-)


    [Personal Site] [Blog] [Facebook]signature

    שבת 16 נובמבר 2013 15:49
    משיב
  • שלום אני עובד עם ASP.NET ולא MVC  ולא השתמשתי ב AJAX   כזה http://webmaster.org.il/articles/aspnet

    כן אני עובד עם  דוט נט 3.5

     דרך אגב אני רק מתחיל בתחום ...

    תודה

    יום שני 18 נובמבר 2013 15:01
  • Server Error in '/kletat_ovdem' Application.

    A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

    Source Error: 
    Line 19:         SqlConnection conn = new SqlConnection(ConnectionString);
    Line 20:         //פתיחת ההתקשרות
    Line 21:         conn.Open();
    Line 22: 
    Line 23:         //הגדרת הפקודה - העברת שם הפרוצדורה וההתקשרות

    Source File: c:\inetpub\wwwroot\kletat_ovdem\App_Code\DbHelper.cs    Line: 21 
    יום שני 18 נובמבר 2013 16:21
  • אהלן

    ברור שהבעיה קשורה בהתחברות לשרת המרוחק. ככל הנראה הבעיה בשרשרת ההתחברות (בהגדרות)

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

    קשה לנטר בלי לראות את הקוד כמובן :-)
    אבל בדרך זו אולי נוביל אותך לפתרון

    צרף לנו את הערך של המשתנה ConnectionString שלך. זה מקור הבעיה בהנחה שהשרת מותקן ומוגדר טוב.

    * אני לא יודע אם יהיה לי זמן אבל אולי כדאי לצרף את הפרוייקט אם אתה יכול.


    [Personal Site] [Blog] [Facebook]signature

    יום שני 18 נובמבר 2013 19:32
    משיב
  • היי 
    קובץ ASPX ראשון כאילו login.ASPX עובד לי , אחרי זה יש חיבור עם DATABASE כאילו שם משתמש וסיסמה ואז זה נופל
    זה קובץ ה WEB CONFIG
    אני חושב שהבעיה מ connectionString
    <?xml version="1.0"?>
    <!-- 
        Note: As an alternative to hand editing this file you can use the 
        web admin tool to configure settings for your application. Use
        the Website->Asp.Net Configuration option in Visual Studio.
        A full list of settings and comments can be found in 
        machine.config.comments usually located in 
        \Windows\Microsoft.Net\Framework\vx.x\Config 
    -->
    <configuration>
    <configSections>
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
    <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    </sectionGroup>
    </sectionGroup>
    </sectionGroup>
    </configSections>
    <appSettings/>
    <connectionStrings>
    <add name="localComp" connectionString="Data Source=Abdazim;Initial Catalog=Kletat_Ovdem;Persist Security Info=True;User ID=sa;Password=1234" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <system.web>
    <!-- 
                Set compilation debug="true" to insert debugging 
                symbols into the compiled page. Because this 
                affects performance, set this value to true only 
                during development.
            -->
    <compilation debug="true">
    <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    </assemblies>
    </compilation>
    <!--
                The <authentication> section enables configuration 
                of the security authentication mode used by 
                ASP.NET to identify an incoming user. 
            -->
    <authentication mode="Windows"/>
    <!--
                The <customErrors> section enables configuration 
                of what to do if/when an unhandled error occurs 
                during the execution of a request. Specifically, 
                it enables developers to configure html error pages 
                to be displayed in place of a error stack trace.

            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->
    <pages>
    <controls>
    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </controls>
    </pages>
    <httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    </httpHandlers>
    <httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
    </system.web>
    <system.codedom>
    <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <providerOption name="CompilerVersion" value="v3.5"/>
    <providerOption name="WarnAsError" value="false"/>
    </compiler>
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <providerOption name="CompilerVersion" value="v3.5"/>
    <providerOption name="OptionInfer" value="true"/>
    <providerOption name="WarnAsError" value="false"/>
    </compiler>
    </compilers>
    </system.codedom>
    <!-- 
            The system.webServer section is required for running ASP.NET AJAX under Internet
            Information Services 7.0.  It is not necessary for previous version of IIS.
        -->
    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
    <remove name="ScriptModule"/>
    <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </modules>
    <handlers>
    <remove name="WebServiceHandlerFactory-Integrated"/>
    <remove name="ScriptHandlerFactory"/>
    <remove name="ScriptHandlerFactoryAppServices"/>
    <remove name="ScriptResource"/>
    <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </handlers>
    </system.webServer>
    <runtime>
    <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    </dependentAssembly>
    </assemblyBinding>
    </runtime>
    </configuration>



    • נערך על-ידי abd azim יום שלישי 19 נובמבר 2013 12:02
    יום שלישי 19 נובמבר 2013 12:00
  • וזה הקישור לפרוייקט : 
    http://www.sendspace.com/file/sbxkdk




    תודהה רבההה
    יום שלישי 19 נובמבר 2013 12:18
  • היי

    1. הורדתי את הפרוייקט, אני לא יודע אם יהיה לי זמן אבל אם כן אז אני אנסה לעבור עליו מהר בסוף השבוע.

    2. לא ניתן לקרוא את הקוד שהעלת כאן, הוא בכתב קטן ואפור חלש. בכל מקרה הרעיון לא לקרוא את כל הקוד (את זה נוכל לעזות אם יהיה זמן ישירות מהפרוייקט) אלא לקבל ממך רק את שרשרת ההתחברות. הבנו כבר שהבעיה קשורה לשרשרת ההתחברות אם השרת SQL הותקן כיאות

    ביקשתי רק את שרשרת ההתחברות שלך ולא את כל העמוד.

    3. אפשר לפני שממשיכים לבדוק את הקוד לוודא שהשרת SQL הותקן כמו שצריך תחילה או במקביל. אם התקנת את הגרסה הכוללת את ה SSMS (תוכנת הניהול של השרת SQL) אז נסה להפעיל את התוכנה ולהתחבר לשרת.

    אם לא התקנת את התכונה של ה SSMS אז גש מהר להתקין אותה כי באמצעותה אתה תבצע פעולות רבות בהמשך.

    * במקביל נבדוק שהשירות של ה SQL רץ טוב. כדי לפתוח את רשימת השירותים במחשב הפעל את הפקודה services.msc

    run -> services.msc

    חפש שירות בשם SQL Server ולידו יופיע סוגריים עם שם נוסף. זה השירות המרכזי של השרת SQL. השם בסוגריים חשוב מאוד!!! זה השם של ה INSTANCE (המופע של השרת). ניתן להתקין כמה גרסאות של SQL וגם כמה פעמים את אותה גרסה, למעשה מה שמתקינים זה כל פעם INSTANCE נוסף של השרת. כדי להתחבר לשרת אנחנו צריכים את השם של ה INSTANCE בשרשרת ההתחברות.

    אם מצאת את השירות והוא רץ אז השרת כניראה פועל.

    ספר לנו מה המצב ומה התוצאה של כל בדיקה ובדיקה :-)


    [Personal Site] [Blog] [Facebook]signature

    • סומן כתשובה על-ידי abd azim יום חמישי 21 נובמבר 2013 11:32
    יום שלישי 19 נובמבר 2013 13:57
    משיב
  • connection string :

    __________________________

      sql server 2012:

                                                         


    יום שלישי 19 נובמבר 2013 14:49
  • services.msc

    יום שלישי 19 נובמבר 2013 14:50
  • אוקי

    * חבל שצירפת תמונה של שרשרת ההתחברות ולא את הטקסט כדי שנוכל לעהתיק כל קטע ולהסביר מה קורה.

    ניראה שהכל מותקן טוב.
    אני רואה מSSMS ומשרשרת ההתחברות שאתה מנסה לעבוד עם מסד נתונים שנמצא בשרת (attach) ולא מסד נתונים שנמצא בפרוייקט עצמו (זה טוב בעקרון לדעתי).

    * האם ניסת ליצור עמוד חדש ולהתחבר ישירות למסד הנתונים בלי שימוש בקובת הקונפיגורציה?
    אם לא אז הגיע הזמן

    הגיע הזמן לשחק עם שרשרת ההתחברות שהיא לא מתאימה למצב שלך :-)

    הערה: לעולם אל תעבוד עם המשתמש sa לעבודה שוטפת

    תגדיר משתמש חדש בשרת, תן לו הרשאות OWNER על מסד הנתונים ותעבוד איתו. מומלץ לכל אפליקציה לעבוד עם משתמש מיוחד שלה מטעמי אבטחה.

    עם איזה משתמש התחברת ל SSMS (אל תגיד את הססמה אלא רק תודא שאתה יודע מי זה ותגיד לנו אם זה משתמש של מערכת ההפעלה או משתמש של ה SQL), ומה כתבת בכניסה במקום של ה server name ?
    אנחנו צריכים את הנתון כדי לעבוד איתו גם בשרשרת ההתחברות.
    * אם ייצרת משתמש חדש מיוחד לאפליקציה אז תבדוק שאתה יכול להתחבר איתו ל SSMS תחילה.

    עבור בינתיים על הקישור הבא:
    http://www.connectionstrings.com/sql-server-2008/

    וכן על הקישור הבא:
    http://www.connectionstrings.com/sql-server-2012/

    יכול להיות שתמצא לבד את התשובה שם :-)
    התשובה נמצאת שם דרך אגב... רק צריך לחפש לפי הנתונים בהם אתה הגדרת את השרת


    [Personal Site] [Blog] [Facebook]signature

    • נערך על-ידי pituachMVP, Editor יום שלישי 19 נובמבר 2013 17:46
    • סומן כתשובה על-ידי abd azim יום חמישי 21 נובמבר 2013 11:32
    יום שלישי 19 נובמבר 2013 17:44
    משיב
  • תודה רבה 
    זה הטקסט של ההתחברות קודם כל
    השאלה האם הוא נכון ?
    נכנסתי לאתר ת'האמת לא יודע במה לבחור .....
    http://www.connectionstrings.com/sql-server-2012/

    <connectionStrings>
    <add name="localComp" connectionString="Data Source=Abdazim;Initial Catalog=Kletat_Ovdem;Persist Security Info=True;User ID=sa;Password=1234" providerName="System.Data.SqlClient"/>
    </connectionStrings>

    * האם ניסת ליצור עמוד חדש ולהתחבר ישירות למסד הנתונים בלי שימוש בקובת הקונפיגורציה?
    יש לי בתוך הפרוייקט תיקיה בשם APP_CODE ויש בתוכה קובץ בשם DBHELPER.CS שיש בתוכו כל ההתחברויות עם DATABASE

    יום רביעי 20 נובמבר 2013 10:55

  • עם איזה משתמש התחברת ל SSMS (אל תגיד את הססמה אלא רק תודא שאתה יודע מי זה ותגיד לנו אם זה משתמש של מערכת ההפעלה או משתמש של ה SQL), ומה כתבת בכניסה במקום של הserver name ?

    USER;SA - PASS;1234

    יום רביעי 20 נובמבר 2013 10:58
  • יום רביעי 20 נובמבר 2013 11:14
  • התמונה מביאה לנו נתונים טובים:

    1. אנחנו יודעים עכשיו מה השם של ה INSTANCE

    2. אתה מתחבר עם המשתמש של מערכת ההפעלה ולא משתמש של שרת ה SQL

    אבל בשרשרת ההתחברות שלך אתה מנסה להתחבר עם המשתמש SA

    בזמן ההתקנה של השרת היה לך אפשרות לבחור Authentication Mode. כדאי לוודא שהשרת מוגדר לעבוד עם Mixed Mode. זה אומר התחברות גם כמשתמש מערכת ההפעלה וגם כמשתמש של ה SQL.

    תוכל לקרוא יותר על הנושא כאן:
    http://www.hosting.com/support/windows-vps/mixedmode/

    תוודא שאתה מגדיר את השרת לעבוד ב MIX, תתחבר לשרת עם האדמין של מערכת ההפעלה, צור משתמש חדש ותן לו הרשאות OWNER על מסד הנתונים של האפליקציה.

    ואז תוכל לעבוד עם שרתשרת ההתחברות עם הנתונים של שם המשתמש החדש והססמה שלו.

    עבור על הקישור האחרון שנתתי לך ונסה למצוא את השרשרת התבחרות המתאימה לך. הבחירה אפשרית רק אחרי שיודעים מה ההגדרות שלך

    למשל אם אתה רוצה להתחבר עם משתמש שמוגדר בשרת ה SQL (כמו שהמלצתי) אז אתה צריך כמובן להכניס את השם משתמש והססמה שלו. במקרה זה אתה לא עובד כמו השרשרת של EXPRESS אלא כמו התחברות לשרת רגיל.

    הנה שתי דוגמאות נפוצות ביותר בעבודה עם web.config עם הסבר קצר:

      <connectionStrings>
        <add name="SiteSqlServer" 
    	 connectionString="
     Data Source=ABDAZIM\sqlexpress;
     Initial Catalog=Database_Name;
     User ID=User_Name;
     Password=xxxxxxx
    " providerName="System.Data.SqlClient"
    /> <add name="ariely_infoConnectionString" connectionString="
     Data Source=.;
     Initial Catalog=Database_Name;
     Integrated Security=True" providerName="System.Data.SqlClient"
    /> </connectionStrings>

    אבל אני מדגיש שעלייך קודם לוודא שאתה כיכול לעבוד ישירות בלי ה web.config ולכן מה שחשוב זה החלק של שרשרת ההתחברות! את שרשרת ההתחברות תרשום בשורה אחת בלי מעברי שורה כמו שאני רשמתי כאן רק לשם ההסבר.

    שים לב לנקודות הבאות:

    name יכול להיות כל שם שרוצים (אנגלית כמובן בהתאם לחוקי שמות). זה השם באמצעותו האפליקציה ניגשת לאלמנט הנוכחי. יכולים להיות כמה אלמנטים של connectionStrings באותה אפליקציה.

    connectionString זה החלק המרכזי, אני אפרט את הפרמטרים הפנימיים בדוגמה:

    Data Source הוא השם בעזרתו התחברת ב SSMS וכולל את שם המחשב ושם ה INSTANCE של השרת SQL. לכן צריך להיות זהה בדיוק למה שרואים בתמונה שלך כשאתה מתחבר דרך ה SSMS. במקרה הראשון אנחנו עובדים עם שם מפורש ובמקרה השני עובדים עם ה INSTANCE של ברירת המחדל (לא תמיד מוגדר ולכן תמיד עדיף לעבוד עם שם מפורש). 

    Initial Catalog זהו השם של מסד הנתונים אליו אתה רוצה להתחבר

    User ID הוא השם של המשתמש שייצרת ב SQL (לא במערכת ההפעלה בדוגמה כאן!) לפני שאתה מתחיל תבדוק שהמשתמש החדש שלך יכול להתחבר ל SSMS!

    Password הששמה כמובן של המשתמש

    providerName תשמש בדיוק במה שיש כאן (כדאי בהמשך ללמוד ולהבין מהו ה provider כחלק מתהליך הלמידה. יש אפשרות לעבוד עם ספקים אחרים אבל זה המועדף בגישה לשרתי SQL)

    במקרה השני שים לב שאנחנו לא רושמים שם משתמש וססמה ובמקום זה רושמים:
    Integrated Security=True

    זה אומר שמי שמפעיל את האפליקציה הוא המשתמש שגם מתחבר לשרת ה SQL והכוונה כמובן לשמוש במשתמש של מערכת ההפעלה. לכן אם אדמיניסטרטור מפעיל את האפליקציה אז הוא זה שמנסה להתחבר לשרת ה SQL וכניראה יצליח, אבל אם האפליקציה רצה ב IIS כמו במקרה של אתר אינטרנט אז המתמש שמריץ את האפליקציה מודר ב IIS.

    תעבוד לפי השיטה הראשונה. ואני שוב פעם חוזר על כך שלפני שאתה מתחיל תבדוק שהמשתמש החדש שלך יכול להתחבר ל SSMS! הכוונה לאותו משתמש שאתה רושם בשרשרת ההתחברות שלך


    [Personal Site] [Blog] [Facebook]signature

    • סומן כתשובה על-ידי abd azim יום חמישי 21 נובמבר 2013 11:33
    יום רביעי 20 נובמבר 2013 11:50
    משיב
  • אתה צריך למצוא מדריך טוב ולעבוד צעד אחרי צעד מפני שאתה מנסה כאן לקפוץ ישירות לבעיה במקום להבין את הדרך :-) 

    שלבים הבאים חייבים להיות

    1. לוודא שהשרת מוגדר לעבודה במצב MIX

    2. התחברות ל SSMS עם המשתמש של ה SQL שאיתו אתה עובד בשרשרת ההתחברות

    3. כתיבה של קוד נקי ונסיון גישה לשרת

    4. לחזור לעבודה עם ה Web.confog

    * כשבכל שלב כדאי לעקוב אחרי מדריך מסודר של צעד אחרי צעד. כרגע יש לך כבר את כל הנתונים עבור שרשרת התתחברות שתתבקש לשים בכל מדריך.


    [Personal Site] [Blog] [Facebook]signature

    יום רביעי 20 נובמבר 2013 11:52
    משיב
  • ואללה תודה אחי עובד לי מצויין 
    תודה רבה שיש אנשים מקצוענים כמוך 
    תודה רבה על המדריך 
    תודה על הכל 

    הבעיה הייתה ב- CONNECTION STRING


    יום רביעי 20 נובמבר 2013 14:29
  • בכיף :-)

    אתה מוזמן לעבור על כל השרשור ולסמן את ההודעות שהיו חלק מהתשובה (וכמובן אפשר לסמן הודעות מועילות בדרך, אבל ראיתי שכבר הקפדת על סימון).

    * שים לב לפעם הבאה כמה חשוב לספק אינפורמציה כולל תמונות וקוד:-)

    בהצלחה בהמשך


    [Personal Site] [Blog] [Facebook]signature

    יום רביעי 20 נובמבר 2013 15:12
    משיב