Showing posts with label Error. Show all posts
Showing posts with label Error. Show all posts

Tuesday, August 18, 2015

Error occurred in deployment step 'Install app for SharePoint': Sideloading of apps is not enabled on this site.

I was trying to create SharePoint apps using Visual Studio 2013 & when I tryied to deploy it was showing me an error :



The following feature need to be enabled :

Display Name: EnableAppSideLoading

Id: ae3a1339-61f5-4f8f-81a7-abd2da956a7d

Compatibility Level: 15

To enable sideloading feature, use the following PowerShell commands:

   
$site = Get-SPSite "http://your.site.url"

$sideLoadingId = new-object System.Guid "ae3a1339-61f5-4f8f-81a7-abd2da956a7d"

$site.Features.Add($sideLoadingId)

Thursday, June 4, 2015

Log error in a separate file

You can log your applications errors in separate text file. Use this code

public static void WriteException(string msg)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    string LogFile = SPUtility.GetVersionedGenericSetupPath("LOGS",15) + "\\SPErrorLog-" + DateTime.Today.ToString("MM-dd-yyyy") + ".txt";
                    StringBuilder sMessage = new StringBuilder();
                    msg = msg.Replace("<b>", "");
                    msg = msg.Replace("</b>", "");
                    msg = msg.Replace("<HR/>", "");

                    sMessage.AppendLine("--------------------------------------------------------------------------------------------------------------------------------------------");
                    sMessage.AppendLine(msg);

                    if (!File.Exists(LogFile))
                    {
                        StreamWriter sw = File.CreateText(LogFile);
                        sw.WriteLine(sMessage);
                        sw.Close();
                    }
                    else
                    {
                        StreamWriter sw = File.AppendText(LogFile);
                        sw.WriteLine(sMessage);
                        sw.Close();
                    }
                });
            }
            catch { }
        }

Tuesday, June 2, 2015

Get error with details

You can log error with all details you want. Here is the example. You need to just pass the exception object & it will return you the whole error details which will be very helpful.  



public static string GetErrorInfo(Exception ex)
        {
            StringBuilder errorRows = new StringBuilder();

            StackTrace stackTrace = new StackTrace(ex, true);
            StackFrame stackFrame = stackTrace.GetFrame(stackTrace.FrameCount - 1);
            MethodBase methodBase = null;
            try
            {
                methodBase = stackFrame.GetMethod();
            }
            catch { }
            errorRows.AppendLine("<b>Server         : </b>" + System.Environment.MachineName + "<HR/>");
            errorRows.AppendLine("<b>Date Time         : </b>" + DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + "<HR/>");
            try
            {
                errorRows.AppendLine("<b>User              : </b>" + SPContext.Current.Web.CurrentUser.Name + "<HR/>");
                errorRows.AppendLine("<b>Web               : </b>" + SPContext.Current.Web.Url + "<HR/>");
                errorRows.AppendLine("<b>Page              : </b>" + HttpContext.Current.Request.Url.AbsolutePath + "<HR/>");
            }
            catch { }

            try
            {
                errorRows.AppendLine("<b>Class Name        : </b>" + methodBase.DeclaringType.FullName + "<HR/>");
                errorRows.AppendLine("<b>Parent Method Name: </b>" + methodBase.Name + "<HR/>");
            }
            catch { }
            errorRows.AppendLine("<b>Error Method      : </b>" + ex.TargetSite.Name + "<HR/>");
            errorRows.AppendLine("<b>Method Tree       : </b>" + getMathodNames(stackTrace.GetFrames()) + "<HR/>");
            errorRows.AppendLine("<b>Assembly Name     : </b>" + Assembly.GetExecutingAssembly().FullName + "<HR/>");
            errorRows.AppendLine("<b>Error Type        : </b>" + ex.GetType().ToString() + "<HR/>");
            errorRows.AppendLine("<b>Message           : </b>" + ex.Message + "<HR/>");
            errorRows.AppendLine("<b>Source            : </b>" + ex.Source + "<HR/>");
            errorRows.AppendLine("<b>Target            : </b>" + ex.TargetSite.ToString() + "<HR/>");
            errorRows.AppendLine("<b>Stack Trace       : </b>" + ex.StackTrace + "<HR/>");



            // add any inner exceptions
            Exception innerException = ex.InnerException;

            while (innerException != null)
            {
                StackTrace stackTraceInner = new StackTrace(innerException, true);
                StackFrame stackFrameInner = stackTraceInner.GetFrame(stackTraceInner.FrameCount - 1);
                MethodBase methodBaseInner = stackFrameInner.GetMethod();
                errorRows.AppendLine("<b>---------------------Inner Exception---------------------</b><HR/>");
                errorRows.AppendLine("<b>Class Name        : </b>" + methodBaseInner.DeclaringType.FullName + "<HR/>");
                errorRows.AppendLine("<b>Parent Method Name: </b>" + methodBaseInner.Name + "<HR/>");
                errorRows.AppendLine("<b>Error Method      : </b>" + innerException.TargetSite.Name + "<HR/>");
                errorRows.AppendLine("<b>Method Tree       : </b>" + getMathodNames(stackTraceInner.GetFrames()) + "<HR/>");
                errorRows.AppendLine("<b>Error Type        : </b>" + innerException.GetType().ToString() + "<HR/>");
                errorRows.AppendLine("<b>Message           : </b>" + innerException.Message + "<HR/>");
                errorRows.AppendLine("<b>Source            : </b>" + innerException.Source + "<HR/>");
                errorRows.AppendLine("<b>Target            : </b>" + innerException.TargetSite.ToString() + "<HR/>");
                errorRows.AppendLine("<b>Stack Trace       : </b>" + innerException.StackTrace + "<HR/>");

                innerException = innerException.InnerException;
            }

            return errorRows.ToString();
        }

        private static string getMathodNames(StackFrame[] fs)
        {
            string methodNames = "";
            foreach (StackFrame stackFrame in fs)
            {
                MethodBase methodBase = stackFrame.GetMethod();
                methodNames += methodBase.Name + " ,";
            }

            return methodNames;
        }