יום שלישי, 13 בנובמבר 2012

0x80070005 (E_ACCESSDENIED)) שגיאה

משום מקום הפרוייקט שלי הפסיק להתחבר לMSSQL, נכנס ללולאת החיבור בtry ובchach קיבלתי את השגיאה הבאה:

0x80070005 (E_ACCESSDENIED))

לאחר נבירה קצרה באינטרנט - משמע שזה חסימה של הרשאות של MSSQL, ולהלן מדריך מפורט שנותן כמה אפשרויות לנסות לפתור את הבעיה:


בסוף הפתרון היה פשוט, כניסה אל תוכנת sql server configuration manager, נמצאת חלק מתיקיית הsql 2008 r2.
שם נוכל לראות את הגדרות החיבור שלנו, במאפייני החיבורים הפכתי את אחד מהם מNO לYES.

כרגע זה עובד, ובא נקווה שלא דפקתי משהו אחר במערכת =)

יום ראשון, 11 בנובמבר 2012

הוספת פינות מיוחדות לdiv עם JQ

ספריה קטנה ונחמדה בשם jQuery Corner יוצרות "מסכה" על אובייקטים מרובעים ובכך יוצרת מגוון רחב של פינות:
מגוון רחב של דוגמאות והסברים:
http://malsup.com/jquery/corner/

נוריד את הקוד אל הפרוייקט ונוסיף לספריית הScripts.

השימוש פשוט, נוסיף DIV רגיל:

 <div id="box1" class="box">
        <strong> דוגמא דוגמא</strong>
        <br />
         בלה בלה בלה בלה בלה
 </div>


נוסיף לו מאפיינים בCSS:

.box  { background-color: #6af;
 padding: 15px;
 text-align: center;
 margin: 25px;
height: 150px;
 width:250px; margin:auto
  }

ואז הוספת קישור של הספריה לדף HTML, ופקודת הJQ שהופכת כל DIV אם CLASS הbox יהפוך למעוגל בפינות:
<script type="text/javascript" src="Scripts/corner.js"></script>
 <script type="text/javascript">
           $(document).ready(function () {
                $("div.box").corner();
            })
 </script>

יום שלישי, 6 בנובמבר 2012

הוספת תווים בweb.config לשימוש חוזר

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


נגדיר בקובץ web.config:
<configuration>
  <appSettings>
      <add key="password" value="1234" />
  </appSettings>
</configuration>

ובפרויקט עצמו נכתוב:
 ConfigurationManager.AppSettings["password"]

קבלת סטטוס שגיאה מקריאת AJAX

אם נרצה לבצע קבלת נתונים מהשרת באמצעות קריאת AJAX, ואם במידה וקבלת הנתונים לא הצליחה לקבל את סטטוס השגיאה שהתרחשה.
[סטטוס 200 זה הצלחה, כל שאר המספרים - זהו כישלון מסיבות שונות]
השגיאה תשלח את מספר הסטטוס לתוך div בשם error
<div id=error"></div>

  $(document).ready(function () {
                $.ajax({
                    type: 'GET',
                    url: '../Handler.ashx',
                    contentType: "application/json; charset=uft-8",
                    dataType: "json",
                    data: { 'action': 'GetData' },
                    success: function (dataS) {PrintData(dataS); },
                    error: function (dataE) { $('#error').text(dataE.status.toString()); }
                });
            })

יום רביעי, 31 באוקטובר 2012

Attachments - הוספת קובץ לשליחה במייל

הקוד לשליחת מכתבים דרך השרת של גימייל מפורסם בהרבה מקומות,
אבל אם נרצה להוסיף קובץ למייל, נשתמש בקוד הבא:

 try
            {
                FileStream fs = new FileStream(HttpContext.Current.Server.MapPath("~/pdf/" + nameOfPdf + ".pdf"), FileMode.Open, FileAccess.Read);

                Attachment Attchmnt = new Attachment(fs, nameOfPdf + ".pdf", MediaTypeNames.Application.Octet);

                msg.Attachments.Add(Attchmnt);
            }

Server.MapPath במחלקה

בגישה אל השרת, נרצה לדעת מהי הכתובת שלו ליישומים שונים (שליפת מידע, הכנסת מידע ועוד), נשתמש בפקודה:
Server.MapPath("pdf/NameOfPdf.pdf")

הפקודה הזו טובה בקבצי aspx.cs שיש להם גישה ישירה אל השרת.

אבל אם יש לנו מחלקה שיושבת בתוך תיקיית App_Code, נקבל את השגיאה הבאה:
The name 'Server' does not exist in the current context

נוכל להשתמש בספרייה הבאה:
HttpContext.Current.Server.MapPath("pdf/NameOfPdf.pdf")