Ошибка длина не может быть меньше нуля

In debug mode, while running the C# WinForms App, I successfully select multiple files through the OpenFileDialog, which is then displayed in the logging window, these files are copied to a temp directory and I believe I get the error when trying to convert the excel files to csv. I get the following runtime debug error:

Error: You may not have permission to read the file or it may be corrupt. 
Reported Error: Length Can not be less than zero. 
Parameter Name: Length.

How do I fix this error?

Here’s my code on MainForm.cs

            // Consolidate Button Click Commands that executes if there are no user input errors 
    void ExecuteConsolidate()
    {
        string consolidatedFolder = targetFolderBrowserDialog.SelectedPath;
        string tempfolder = targetFolderBrowserDialog.SelectedPath + "\tempDirectory";
        string sFile = "";

        //create a temporary directory to store selected excel and csv files
        if (!Directory.Exists(tempfolder))
        {
            Directory.CreateDirectory(tempfolder);
        }       
        try
        {
            for (int i = 0; i < listBoxSourceFiles.Items.Count; i++)
            {
                sFile = listBoxSourceFiles.Items[i].ToString();
                // Copy each selected xlsx files into the specified Temporary Folder 
                System.IO.File.Copy(textBoxSourceDir.Text + "\" + sFile, tempfolder + @"" + System.IO.Path.GetFileName(sFile), true);
                Log("File " + sFile + " has been copied to " + tempfolder + @"" + System.IO.Path.GetFileName(sFile));                                                                          
            } // ends foreach    

            Process convertFilesProcess = new Process();
            // remove xlsx extension from filename so that we can add the .csv extension 
            string csvFileName = sourceFileOpenFileDialog.FileName.Substring(0, sourceFileOpenFileDialog.FileName.Length - 3);

            // command prompt execution for converting xlsx files to csv
            convertFilesProcess.StartInfo.WorkingDirectory = "I:\CommissisionReconciliation\App\ConvertExcel\";
            convertFilesProcess.StartInfo.FileName = "ConvertExcelTo.exe";
            convertFilesProcess.StartInfo.Arguments = " ^ " + targetFolderBrowserDialog.SelectedPath + "^" + csvFileName + ".csv";
            convertFilesProcess.StartInfo.UseShellExecute = true;
            convertFilesProcess.StartInfo.CreateNoWindow = true;
            convertFilesProcess.StartInfo.RedirectStandardOutput = true;
            convertFilesProcess.StartInfo.RedirectStandardError = true;
            convertFilesProcess.Start();

            //Process that creates all the xlsx files in temp folder to csv files.
            Process consolidateFilesProcess = new Process();

            // command prompt execution for CSV File Consolidation
            consolidateFilesProcess.StartInfo.WorkingDirectory = targetFolderBrowserDialog.SelectedPath;
            consolidateFilesProcess.StartInfo.Arguments = "Copy *.csv ^" + csvFileName + ".csv";
            consolidateFilesProcess.StartInfo.UseShellExecute = false;
            consolidateFilesProcess.StartInfo.CreateNoWindow = true;
            consolidateFilesProcess.StartInfo.RedirectStandardOutput = true;
            consolidateFilesProcess.StartInfo.RedirectStandardError = true;
            consolidateFilesProcess.Start();

            Log("All Files at " + tempfolder + " has been converted to a csv file");
            Thread.Sleep(2000);
            StreamReader sOut = consolidateFilesProcess.StandardOutput;
            sOut.Close();

        }
        catch (SecurityException ex)
        {
            // The user lacks appropriate permissions to read files, discover paths, etc.
            MessageBox.Show("Security error. The user lacks appropriate permissions to read files, discover paths, etc. Please contact your administrator for details.nn" +
            "Error message: " + ex.Message + "nn");
        }
        catch (Exception ex)
        {
            // Could not load the image - probably related to Windows file system permissions.
            MessageBox.Show("You may not have permission to read the file, or " +
             "it may be corrupt.nnReported error: " + ex.Message);
        }
        try
        {                
            if (Directory.Exists(tempfolder))
            {
                Directory.Delete(tempfolder, true);
            }
        }
        catch (SecurityException ex)
        {
            // The user lacks appropriate permissions to read files, discover paths, etc.
            MessageBox.Show("Security error. The user lacks appropriate permissions to read files, discover paths, etc. Please contact your administrator for details.nn" +
            "Error message: " + ex.Message + "nn");
        }
        catch (Exception ex)
        {
            // Could not load the image - probably related to Windows file system permissions.
            MessageBox.Show("You may not have permission to read the file, or " +
             "it may be corrupt.nnReported error: " + ex.Message);
        }
        finally
        {
            // reset events
            m_EventStopThread.Reset();
            m_EventThreadStopped.Reset();

            // create worker thread instance;
            m_WorkerThread = new Thread(new ThreadStart(this.WorkerThreadFunction));
            m_WorkerThread.Start();
        }
    } // ends void ExecuteConsolidate()

Thanks for looking! :)
All helpful answers will receive up-votes! :)
If you need more information like the workerThread method or the app.config code, let me know!

In debug mode, while running the C# WinForms App, I successfully select multiple files through the OpenFileDialog, which is then displayed in the logging window, these files are copied to a temp directory and I believe I get the error when trying to convert the excel files to csv. I get the following runtime debug error:

Error: You may not have permission to read the file or it may be corrupt. 
Reported Error: Length Can not be less than zero. 
Parameter Name: Length.

How do I fix this error?

Here’s my code on MainForm.cs

            // Consolidate Button Click Commands that executes if there are no user input errors 
    void ExecuteConsolidate()
    {
        string consolidatedFolder = targetFolderBrowserDialog.SelectedPath;
        string tempfolder = targetFolderBrowserDialog.SelectedPath + "tempDirectory";
        string sFile = "";

        //create a temporary directory to store selected excel and csv files
        if (!Directory.Exists(tempfolder))
        {
            Directory.CreateDirectory(tempfolder);
        }       
        try
        {
            for (int i = 0; i < listBoxSourceFiles.Items.Count; i++)
            {
                sFile = listBoxSourceFiles.Items[i].ToString();
                // Copy each selected xlsx files into the specified Temporary Folder 
                System.IO.File.Copy(textBoxSourceDir.Text + "" + sFile, tempfolder + @"" + System.IO.Path.GetFileName(sFile), true);
                Log("File " + sFile + " has been copied to " + tempfolder + @"" + System.IO.Path.GetFileName(sFile));                                                                          
            } // ends foreach    

            Process convertFilesProcess = new Process();
            // remove xlsx extension from filename so that we can add the .csv extension 
            string csvFileName = sourceFileOpenFileDialog.FileName.Substring(0, sourceFileOpenFileDialog.FileName.Length - 3);

            // command prompt execution for converting xlsx files to csv
            convertFilesProcess.StartInfo.WorkingDirectory = "I:CommissisionReconciliationAppConvertExcel";
            convertFilesProcess.StartInfo.FileName = "ConvertExcelTo.exe";
            convertFilesProcess.StartInfo.Arguments = " ^ " + targetFolderBrowserDialog.SelectedPath + "^" + csvFileName + ".csv";
            convertFilesProcess.StartInfo.UseShellExecute = true;
            convertFilesProcess.StartInfo.CreateNoWindow = true;
            convertFilesProcess.StartInfo.RedirectStandardOutput = true;
            convertFilesProcess.StartInfo.RedirectStandardError = true;
            convertFilesProcess.Start();

            //Process that creates all the xlsx files in temp folder to csv files.
            Process consolidateFilesProcess = new Process();

            // command prompt execution for CSV File Consolidation
            consolidateFilesProcess.StartInfo.WorkingDirectory = targetFolderBrowserDialog.SelectedPath;
            consolidateFilesProcess.StartInfo.Arguments = "Copy *.csv ^" + csvFileName + ".csv";
            consolidateFilesProcess.StartInfo.UseShellExecute = false;
            consolidateFilesProcess.StartInfo.CreateNoWindow = true;
            consolidateFilesProcess.StartInfo.RedirectStandardOutput = true;
            consolidateFilesProcess.StartInfo.RedirectStandardError = true;
            consolidateFilesProcess.Start();

            Log("All Files at " + tempfolder + " has been converted to a csv file");
            Thread.Sleep(2000);
            StreamReader sOut = consolidateFilesProcess.StandardOutput;
            sOut.Close();

        }
        catch (SecurityException ex)
        {
            // The user lacks appropriate permissions to read files, discover paths, etc.
            MessageBox.Show("Security error. The user lacks appropriate permissions to read files, discover paths, etc. Please contact your administrator for details.nn" +
            "Error message: " + ex.Message + "nn");
        }
        catch (Exception ex)
        {
            // Could not load the image - probably related to Windows file system permissions.
            MessageBox.Show("You may not have permission to read the file, or " +
             "it may be corrupt.nnReported error: " + ex.Message);
        }
        try
        {                
            if (Directory.Exists(tempfolder))
            {
                Directory.Delete(tempfolder, true);
            }
        }
        catch (SecurityException ex)
        {
            // The user lacks appropriate permissions to read files, discover paths, etc.
            MessageBox.Show("Security error. The user lacks appropriate permissions to read files, discover paths, etc. Please contact your administrator for details.nn" +
            "Error message: " + ex.Message + "nn");
        }
        catch (Exception ex)
        {
            // Could not load the image - probably related to Windows file system permissions.
            MessageBox.Show("You may not have permission to read the file, or " +
             "it may be corrupt.nnReported error: " + ex.Message);
        }
        finally
        {
            // reset events
            m_EventStopThread.Reset();
            m_EventThreadStopped.Reset();

            // create worker thread instance;
            m_WorkerThread = new Thread(new ThreadStart(this.WorkerThreadFunction));
            m_WorkerThread.Start();
        }
    } // ends void ExecuteConsolidate()

Thanks for looking! :)
All helpful answers will receive up-votes! :)
If you need more information like the workerThread method or the app.config code, let me know!

In debug mode, while running the C# WinForms App, I successfully select multiple files through the OpenFileDialog, which is then displayed in the logging window, these files are copied to a temp directory and I believe I get the error when trying to convert the excel files to csv. I get the following runtime debug error:

Error: You may not have permission to read the file or it may be corrupt. 
Reported Error: Length Can not be less than zero. 
Parameter Name: Length.

How do I fix this error?

Here’s my code on MainForm.cs

            // Consolidate Button Click Commands that executes if there are no user input errors 
    void ExecuteConsolidate()
    {
        string consolidatedFolder = targetFolderBrowserDialog.SelectedPath;
        string tempfolder = targetFolderBrowserDialog.SelectedPath + "tempDirectory";
        string sFile = "";

        //create a temporary directory to store selected excel and csv files
        if (!Directory.Exists(tempfolder))
        {
            Directory.CreateDirectory(tempfolder);
        }       
        try
        {
            for (int i = 0; i < listBoxSourceFiles.Items.Count; i++)
            {
                sFile = listBoxSourceFiles.Items[i].ToString();
                // Copy each selected xlsx files into the specified Temporary Folder 
                System.IO.File.Copy(textBoxSourceDir.Text + "" + sFile, tempfolder + @"" + System.IO.Path.GetFileName(sFile), true);
                Log("File " + sFile + " has been copied to " + tempfolder + @"" + System.IO.Path.GetFileName(sFile));                                                                          
            } // ends foreach    

            Process convertFilesProcess = new Process();
            // remove xlsx extension from filename so that we can add the .csv extension 
            string csvFileName = sourceFileOpenFileDialog.FileName.Substring(0, sourceFileOpenFileDialog.FileName.Length - 3);

            // command prompt execution for converting xlsx files to csv
            convertFilesProcess.StartInfo.WorkingDirectory = "I:CommissisionReconciliationAppConvertExcel";
            convertFilesProcess.StartInfo.FileName = "ConvertExcelTo.exe";
            convertFilesProcess.StartInfo.Arguments = " ^ " + targetFolderBrowserDialog.SelectedPath + "^" + csvFileName + ".csv";
            convertFilesProcess.StartInfo.UseShellExecute = true;
            convertFilesProcess.StartInfo.CreateNoWindow = true;
            convertFilesProcess.StartInfo.RedirectStandardOutput = true;
            convertFilesProcess.StartInfo.RedirectStandardError = true;
            convertFilesProcess.Start();

            //Process that creates all the xlsx files in temp folder to csv files.
            Process consolidateFilesProcess = new Process();

            // command prompt execution for CSV File Consolidation
            consolidateFilesProcess.StartInfo.WorkingDirectory = targetFolderBrowserDialog.SelectedPath;
            consolidateFilesProcess.StartInfo.Arguments = "Copy *.csv ^" + csvFileName + ".csv";
            consolidateFilesProcess.StartInfo.UseShellExecute = false;
            consolidateFilesProcess.StartInfo.CreateNoWindow = true;
            consolidateFilesProcess.StartInfo.RedirectStandardOutput = true;
            consolidateFilesProcess.StartInfo.RedirectStandardError = true;
            consolidateFilesProcess.Start();

            Log("All Files at " + tempfolder + " has been converted to a csv file");
            Thread.Sleep(2000);
            StreamReader sOut = consolidateFilesProcess.StandardOutput;
            sOut.Close();

        }
        catch (SecurityException ex)
        {
            // The user lacks appropriate permissions to read files, discover paths, etc.
            MessageBox.Show("Security error. The user lacks appropriate permissions to read files, discover paths, etc. Please contact your administrator for details.nn" +
            "Error message: " + ex.Message + "nn");
        }
        catch (Exception ex)
        {
            // Could not load the image - probably related to Windows file system permissions.
            MessageBox.Show("You may not have permission to read the file, or " +
             "it may be corrupt.nnReported error: " + ex.Message);
        }
        try
        {                
            if (Directory.Exists(tempfolder))
            {
                Directory.Delete(tempfolder, true);
            }
        }
        catch (SecurityException ex)
        {
            // The user lacks appropriate permissions to read files, discover paths, etc.
            MessageBox.Show("Security error. The user lacks appropriate permissions to read files, discover paths, etc. Please contact your administrator for details.nn" +
            "Error message: " + ex.Message + "nn");
        }
        catch (Exception ex)
        {
            // Could not load the image - probably related to Windows file system permissions.
            MessageBox.Show("You may not have permission to read the file, or " +
             "it may be corrupt.nnReported error: " + ex.Message);
        }
        finally
        {
            // reset events
            m_EventStopThread.Reset();
            m_EventThreadStopped.Reset();

            // create worker thread instance;
            m_WorkerThread = new Thread(new ThreadStart(this.WorkerThreadFunction));
            m_WorkerThread.Start();
        }
    } // ends void ExecuteConsolidate()

Thanks for looking! :)
All helpful answers will receive up-votes! :)
If you need more information like the workerThread method or the app.config code, let me know!

Здравствуйте.

Проблема моя состоит вот в чем. При запуске приложения, использующего Framework, выподает ошибка «Необрабатываемое исключение в приложении» и чуть дальше «длина неможет быть меньше нуля. Имя параметра
length» и приложение не открывается.

Windows 8.1, стоят .Net Framework 1sp1-4.5

Вот что написано в «Сведениях»

Подробная информация об использовании оперативной 
(JIT) отладки вместо данного диалогового 
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.ArgumentOutOfRangeException: Длина не может быть меньше нуля.
Имя параметра: length
   в System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
   в Radial_Menu_Editor.MainForm.NombresTanquesEspecificos()
   в Radial_Menu_Editor.MainForm.IniciarVariableMiMenu()
   в Radial_Menu_Editor.MainForm.MainForm_Load(Object sender, EventArgs e)
   в System.EventHandler.Invoke(Object sender, EventArgs e)
   в System.Windows.Forms.Form.OnLoad(EventArgs e)
   в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   в System.Windows.Forms.Control.CreateControl()
   в System.Windows.Forms.Control.WmShowWindow(Message& m)
   в System.Windows.Forms.Control.WndProc(Message& m)
   в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Загруженные сборки **************
mscorlib
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
—————————————-
Radial Menu Editor
    Версия сборки: 1.3.2.0
    Версия Win32: 1.3.2.0
    CodeBase: file:///C:/Users/second%20PUPsik/Desktop/Все%20что%20есть%20на%20белом%20свете/Radial%20Menu%20Editor%20%5BBlogtanker.ru%5D/Radial%20Menu%20Editor%20v1.3.2/Radial%20Menu%20Editor.exe
—————————————-
Microsoft.VisualBasic
    Версия сборки: 8.0.0.0
    Версия Win32: 8.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
—————————————-
System
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
—————————————-
System.Windows.Forms
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
—————————————-
System.Drawing
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
—————————————-
System.Runtime.Remoting
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
—————————————-
System.Xml
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
—————————————-
mscorlib.resources
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
—————————————-
System.Windows.Forms.resources
    Версия сборки: 2.0.0.0
    Версия Win32: 2.0.50727.7905 (win9rel.050727-7900)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
—————————————-

************** Оперативная отладка (JIT) **************
Для подключения оперативной (JIT) отладки файл .config данного
приложения или компьютера (machine.config) должен иметь
значение jitDebugging, установленное в секции system.windows.forms.
Приложение также должно быть скомпилировано с включенной
отладкой.

Например:

<configuration>
    <system.windows.forms jitDebugging=»true» />
</configuration>

При включенной отладке JIT любое необрабатываемое исключение
пересылается отладчику JIT, зарегистрированному на данном компьютере,
вместо того чтобы обрабатываться данным диалоговым окном.

P.S Картинку прикрепить не дали.

Hi, can you take a look at my global.asax.cs file?  I have pored over the code but I cannot figure what needs to get changed to get rid of the error.  All help is greatly appreciated.  Thank you

Error Message:

Server Error in ‘/’ Application.


Length cannot be less than zero.
Parameter name: length

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.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length

Source Error: 

Line 506:        bool checkParameters = false;
Line 507:
Line 508:        URLRewritingResultEnum status = URLRewriter.RewriteUrl(relativePath, excludedEnum, siteName, viewMode);
Line 509:        switch (status)
Line 510:        {

Source File: f:hostingspacesoryxcom1oes.com.qawwwrootApp_CodeGlobal.asax.cs    Line: 508 

Stack Trace: 

[ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length]
   System.String.Substring(Int32 startIndex, Int32 length) +13025523
   CMS.PortalEngine.PageInfoProvider.GetDataForPageInfoForUrl(String url, String cultureCode, String defaultAliasPath, Boolean combineWithDefaultCulture, Boolean isDocumentPage, GeneralConnection conn, PageInfoSource& source, String& wildcardQueryString) +456
   CMS.PortalEngine.PageInfoProvider.GetPageInfoForUrl(String url, String cultureCode, String defaultAliasPath, Boolean combineWithDefaultCulture, Boolean isDocumentPage, GeneralConnection conn, PageInfoSource& source, String& wildcardQueryString, String siteName) +502
   CMS.PortalEngine.PageInfoProvider.GetPageInfoForUrl(String url, String cultureCode, String defaultAliasPath, Boolean combineWithDefaultCulture, Boolean isDocumentPage, GeneralConnection conn, PageInfoSource& source, String& wildcardQueryString) +46
   CMS.URLRewritingEngine.URLRewriter.RewriteUrl(String relativePath, ExcludedSystemEnum excludedEnum, SiteNameOnDemand siteName, ViewModeOnDemand viewMode) +4592
   Global.RewriteUrl(String relativePath, ExcludedSystemEnum excludedEnum, ViewModeOnDemand viewMode, SiteNameOnDemand siteName) in f:hostingspacesoryxcom1oes.com.qawwwrootApp_CodeGlobal.asax.cs:508
   Global.Application_AuthorizeRequest(Object sender, EventArgs e) in f:hostingspacesoryxcom1oes.com.qawwwrootApp_CodeGlobal.asax.cs:301
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +141
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +48
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +71


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3282.0

Here is the global.asax.cs file.  Line 508 referenced in the error above is at the very end of this post.

#region «Usings»

using System.Web;
using System.IO;
using System.Web.SessionState;
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using System.Reflection;
using System.Diagnostics;
using System.Web.Security;
using System.Text.RegularExpressions;
using System.Security.Principal;

using CMS.GlobalEventHelper;
using CMS.URLRewritingEngine;
using CMS.CMSHelper;
using CMS.CMSOutputFilter;
using CMS.Scheduler;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.EventLog;
using CMS.EmailEngine;
using CMS.GlobalHelper;
using CMS.PortalEngine;
using CMS.DataEngine;
using CMS.VirtualPathHelper;
using CMS.WebFarmSyncHelper;
using CMS.WebAnalytics;
using CMS.LicenseProvider;
using CMS.WebFarmSync;
using CMS.UIControls;
using CMS.OutputFilter;

#endregion

public class Global : System.Web.HttpApplication
{
    #region «Variables»

    private static DateTime mApplicationStart = DateTime.Now;
    private static DateTime mApplicationStartFinished = DateTime.MinValue;

    private static bool firstEndRequestAfterStart = true;

    private static bool? mApplicationInitialized = null;

    private static object mLock = new object();

    /// <summary>
    /// Windows identity
    /// </summary>
    private static WindowsIdentity mWindowsIdentity = null;

    #endregion


    #region «Properties»

    /// <summary>
    /// Date and time of the application start.
    /// </summary>
    public static DateTime ApplicationStart
    {
        get
        {
            return mApplicationStart;
        }
    }


    /// <summary>
    /// Date and time when the application start (initialization) finished its execution
    /// </summary>
    public static DateTime ApplicationStartFinished
    {
        get
        {
            return mApplicationStartFinished;
        }
    }


    /// <summary>
    /// Application initialized
    /// </summary>
    public static bool ApplicationInitialized
    {
        get
        {
            if (mApplicationInitialized == null)
            {
                mApplicationInitialized = false;
            }

            return mApplicationInitialized.Value;
        }
    }

   
    #endregion


    #region «Application events»

    /// <summary>
    /// Application start event handler
    /// </summary>
    public void Application_Start(object sender, EventArgs e)
    {
#if DEBUG
        // Set debug mode
        SystemHelper.IsWebProjectDebug = true;
#endif
    }


    /// <summary>
    /// Application error event handler
    /// </summary>
    public void Application_Error(object sender, EventArgs e)
    {
        CMSApplication.BeforeAplicationError(sender, e);

        // Log the error
        LogLastApplicationError();

        CMSApplication.AfterApplicationError(sender, e);
    }


    /// <summary>
    /// Application end event handler
    /// </summary>
    public void Application_End(object sender, EventArgs e)
    {
        CMSApplication.BeforeAplicationEnd(sender, e);

        try
        {
            // Log the application end
            LogApplicationEnd();

            // Delete temporary directory which is used for excel file creation
            DataHelper.DeleteExcelTempDirectory();
        }
        catch
        {
        }

        CMSApplication.AfterApplicationEnd(sender, e);
    }

    #endregion


    #region «Session events»

    /// <summary>
    /// Session start event handler
    /// </summary>
    public void Session_Start(object sender, EventArgs e)
    {
        DebugHelper.SetContext(«Session_Start»);
        CMSSession.BeforeSessionStart(sender, e);

        if (SqlHelperClass.IsConnectionStringInitialized)
        {
            string siteName = CMSContext.CurrentSiteName;

            // If path was rewritten log session
            if (URLRewriter.CurrentStatus == URLRewritingResultEnum.PathRewritten)
            {
                // Add sesssion to the session manager
                if (SessionManager.OnlineUsersEnabled && !UrlHelper.IsExcludedSystem(URLRewriter.CurrentRelativePath))
                {
                    SessionManager.UpdateCurrentSession(null);
                }
            }

            if (siteName != «»)
            {
                // Process the URL referrer data
                ProcessReferrer(siteName);

                // Initialize the current visit status
                if (AnalyticsHelper.AnalyticsEnabled(siteName))
                {
                    InitializeVisitStatus();
                }

                // If authentication mode is Windows, set user UI culture
                if (RequestHelper.IsWindowsAuthentication() && UserInfoProvider.IsAuthenticated())
                {
                    UserInfo currentUser = CMSContext.CurrentUser;
                    if (!currentUser.IsPublic())
                    {
                        UserInfoProvider.SetPreferredCultures(currentUser);
                    }
                }
            }
        }

        // Count the session
        RequestHelper.TotalSessions++;

        CMSSession.AfterSessionStart(sender, e);
        DebugHelper.ReleaseContext();
    }


    /// <summary>
    /// Session end event handler
    /// </summary>
    public void Session_End(object sender, EventArgs e)
    {
        CMSSession.BeforeSessionEnd(sender, e);

        if (SqlHelperClass.IsConnectionStringInitialized)
        {
            // Removes expired sessions
            if (SessionManager.OnlineUsersEnabled)
            {
                SessionManager.RemoveExpiredSessions();
            }
        }

        CMSSession.AfterSessionEnd(sender, e);
    }

    #endregion


    #region «Request events»

    public void Application_BeginRequest(object sender, EventArgs e)
    {
        // Check the application validity
        LicenseHelper.CheckValidity();

        // Enable request debugging

        // Application start events
        FirstRequestInitialization(sender, e);

        CMSRequest.BeforeBeginRequest(sender, e);

        // Check if Database installation needed
        if (InstallerFunctions.InstallRedirect())
        {
            return;
        }

        // Enable debugging
        SetInitialDebug();

        CMSRequest.AfterBeginRequest(sender, e);
    }


    /// <summary>
    /// Request authentication handler
    /// </summary>
    public void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        CMSRequest.BeforeAuthenticateRequest(sender, e);

        CMSRequest.AfterAuthenticateRequest(sender, e);
    }


    /// <summary>
    /// Request authorization handler
    /// </summary>
    public void Application_AuthorizeRequest(object sender, EventArgs e)
    {
        RequestHelper.LogRequestOperation(«AuthorizeRequest», null, 0);
        DebugHelper.SetContext(«AuthorizeRequest»);
        CMSRequest.BeforeAuthorizeRequest(sender, e);

        // Check the excluded status
        string relativePath = URLRewriter.CurrentRelativePath;
        ExcludedSystemEnum excludedEnum = UrlHelper.IsExcludedSystemEnum(relativePath);

        ViewModeOnDemand viewMode = new ViewModeOnDemand();
        SiteNameOnDemand siteName = new SiteNameOnDemand();

        // Try to send the output from the cache without URL rewriting
        if (SendOutputFromCache(relativePath, excludedEnum, viewMode, siteName))
        {
            return;
        }

        // Perform the URL rewriting
        RewriteUrl(relativePath, excludedEnum, viewMode, siteName);

        CMSRequest.AfterAuthorizeRequest(sender, e);
        DebugHelper.ReleaseContext();
    }


    /// <summary>
    /// Acquire request state event handler
    /// </summary>
    public void Application_AcquireRequestState(object sender, EventArgs e)
    {
        RequestHelper.LogRequestOperation(«AcquireRequestState», null, 0);
        DebugHelper.SetContext(«AcquireRequestState»);
        CMSRequest.BeforeAcquireRequestState(sender, e);

        // Check the page security
        CheckSecurity();

        CMSRequest.AfterAcquireRequestState(sender, e);
        DebugHelper.ReleaseContext();
    }


    /// <summary>
    /// End request event handler
    /// </summary>
    protected void Application_EndRequest(Object sender, EventArgs e)
    {
        RequestHelper.LogRequestOperation(«EndRequest», HttpContext.Current.Response.Status.ToString(), 0);
        DebugHelper.SetContext(«EndRequest»);
        CMSRequest.BeforeEndRequest(sender, e);

        // Register the debug logs
        if (CMSFunctions.AnyDebugEnabled)
        {
            RequestHelper.LogRequestValues(true, true, true);
            DebugHelper.RegisterLogs();
        }

        // If not using automatic scheduler, run scheduler from the request
        if (SqlHelperClass.IsConnectionStringInitialized)
        {
            // Restore the response cookies if fullpage caching is set
            if ((URLRewriter.CurrentOutputCache > 0) && (URLRewriter.CurrentStatus != URLRewritingResultEnum.GetFile))
            {
                CookieHelper.RestoreResponseCookies();
            }

            // Additional tasks within first request end
            if (firstEndRequestAfterStart)
            {
                firstEndRequestAfterStart = false;

                // Process synchronization tasks
                WebSyncHelper.ProcessMyTasks();

                // Send all the remaining queued e-mails
                SendNewsletterEmails();

                // Run smart search

                SearchTaskInfoProvider.ProcessTasks();
            }
            else
            {
                // Attempt to run the scheduler
                if (!RequestHelper.IsAsyncPostback())
                {
                    RunScheduler();
                }
            }

            // Run web farm updater if it is required within current request
            WebSyncHelper.SynchronizeWebFarm();

        }

        CMSRequest.AfterEndRequest(sender, e);

        // Write SQL query log
        DebugHelper.ReleaseContext();
        ConnectionHelper.WriteRequestLog();
        SecurityHelper.WriteRequestLog();
    }

    #endregion


    #region «Overriden methods»

    /// <summary>
    /// Custom cache parameters processing
    /// </summary>
    public override string GetVaryByCustomString(HttpContext context, string custom)
    {
        if ((HttpContext.Current == null) || (context == null))
        {
            return «»;
        }

        // Do not cache on postback
        if (UrlHelper.IsPostback())
        {
            Response.Cache.SetNoStore();
            return Guid.NewGuid().ToString();
        }

        PageInfo currentPage = CMSContext.CurrentPageInfo;
        string result = null;

        // Cache control
        if ((currentPage != null) && !custom.StartsWith(«control;»))
        {
            // Check page caching minutes
            int cacheMinutes = currentPage.NodeCacheMinutes;
            if (cacheMinutes <= 0)
            {
                Response.Cache.SetNoStore();
                return Guid.NewGuid().ToString();
            }
        }

        SiteNameOnDemand siteName = new SiteNameOnDemand();
        ViewModeOnDemand viewMode = new ViewModeOnDemand();

        // Parse the custom parameters
        string contextString = CMSContext.GetContextCacheString(custom, viewMode, siteName);
        if (contextString == null)
        {
            // Do not cache
            Response.Cache.SetNoStore();
            return Guid.NewGuid().ToString();
        }
        else
        {
            result = «cached» + contextString;
        }

        return result.ToLower();
    }

    #endregion


    #region «Methods»

    /// <summary>
    /// Attempts to send the output of the page from the cache
    /// </summary>
    /// <param name=»relativePath»>Relative path</param>
    /// <param name=»excludedEnum»>Excluded page status</param>
    /// <param name=»viewMode»>View mode</param>
    /// <param name=»siteName»>Site name</param>
    private static bool SendOutputFromCache(string relativePath, ExcludedSystemEnum excludedEnum, ViewModeOnDemand viewMode, SiteNameOnDemand siteName)
    {
        if (OutputFilter.UseOutputFilterCache && ((excludedEnum == ExcludedSystemEnum.NotExcluded) || (excludedEnum == ExcludedSystemEnum.Handler404)))
        {
            if (relativePath.StartsWith(«/getfile/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/getmetafile/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/getmediafile/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/getattachment/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/cmsgetattachment/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/trackback/», StringComparison.CurrentCultureIgnoreCase))
            {
                // Do nothing for special paths
            }
            else
            {
                // Ensure the culture
                PreferredCultureOnDemand culture = new PreferredCultureOnDemand();
                URLRewriter.ValidateCulture(siteName.Value, culture, null);

                // Try to get result from the cache
                URLRewritingResultEnum status = URLRewritingResultEnum.Unknown;
                if (OutputFilter.SendOutputFromCache(viewMode, siteName, out status))
                {
                    switch (status)
                    {
                        // Document page
                        case URLRewritingResultEnum.PathRewritten:
                            {
                                // Log the visitor
                                LogVisitor(siteName);
                            }
                            break;
                    }

                    return true;
                }
            }
        }

        return false;
    }


    /// <summary>
    /// Rewrites the URL and performs all operations required after URL rewriting
    /// </summary>
    /// <param name=»relativePath»>Relative path</param>
    /// <param name=»excludedEnum»>Excluded page status</param>
    /// <param name=»viewMode»>View mode</param>
    /// <param name=»siteName»>Site name</param>
    ///private static void RewriteUrl(string relativePath, ExcludedSystemEnum excludedEnum, ViewModeOnDemand viewMode, SiteNameOnDemand siteName)
    {
        bool checkParameters = true;

        URLRewritingResultEnum status = URLRewriter.RewriteUrl(relativePath, excludedEnum, siteName, viewMode);
        switch (status)
  

Hi, can you take a look at my global.asax.cs file?  I have pored over the code but I cannot figure what needs to get changed to get rid of the error.  All help is greatly appreciated.  Thank you

Error Message:

Server Error in ‘/’ Application.


Length cannot be less than zero.
Parameter name: length

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.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length

Source Error: 

Line 506:        bool checkParameters = false;
Line 507:
Line 508:        URLRewritingResultEnum status = URLRewriter.RewriteUrl(relativePath, excludedEnum, siteName, viewMode);
Line 509:        switch (status)
Line 510:        {

Source File: f:hostingspacesoryxcom1oes.com.qawwwrootApp_CodeGlobal.asax.cs    Line: 508 

Stack Trace: 

[ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length]
   System.String.Substring(Int32 startIndex, Int32 length) +13025523
   CMS.PortalEngine.PageInfoProvider.GetDataForPageInfoForUrl(String url, String cultureCode, String defaultAliasPath, Boolean combineWithDefaultCulture, Boolean isDocumentPage, GeneralConnection conn, PageInfoSource& source, String& wildcardQueryString) +456
   CMS.PortalEngine.PageInfoProvider.GetPageInfoForUrl(String url, String cultureCode, String defaultAliasPath, Boolean combineWithDefaultCulture, Boolean isDocumentPage, GeneralConnection conn, PageInfoSource& source, String& wildcardQueryString, String siteName) +502
   CMS.PortalEngine.PageInfoProvider.GetPageInfoForUrl(String url, String cultureCode, String defaultAliasPath, Boolean combineWithDefaultCulture, Boolean isDocumentPage, GeneralConnection conn, PageInfoSource& source, String& wildcardQueryString) +46
   CMS.URLRewritingEngine.URLRewriter.RewriteUrl(String relativePath, ExcludedSystemEnum excludedEnum, SiteNameOnDemand siteName, ViewModeOnDemand viewMode) +4592
   Global.RewriteUrl(String relativePath, ExcludedSystemEnum excludedEnum, ViewModeOnDemand viewMode, SiteNameOnDemand siteName) in f:hostingspacesoryxcom1oes.com.qawwwrootApp_CodeGlobal.asax.cs:508
   Global.Application_AuthorizeRequest(Object sender, EventArgs e) in f:hostingspacesoryxcom1oes.com.qawwwrootApp_CodeGlobal.asax.cs:301
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +141
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +48
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +71


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.7.3282.0

Here is the global.asax.cs file.  Line 508 referenced in the error above is at the very end of this post.

#region «Usings»

using System.Web;
using System.IO;
using System.Web.SessionState;
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.Configuration;
using System.Reflection;
using System.Diagnostics;
using System.Web.Security;
using System.Text.RegularExpressions;
using System.Security.Principal;

using CMS.GlobalEventHelper;
using CMS.URLRewritingEngine;
using CMS.CMSHelper;
using CMS.CMSOutputFilter;
using CMS.Scheduler;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.EventLog;
using CMS.EmailEngine;
using CMS.GlobalHelper;
using CMS.PortalEngine;
using CMS.DataEngine;
using CMS.VirtualPathHelper;
using CMS.WebFarmSyncHelper;
using CMS.WebAnalytics;
using CMS.LicenseProvider;
using CMS.WebFarmSync;
using CMS.UIControls;
using CMS.OutputFilter;

#endregion

public class Global : System.Web.HttpApplication
{
    #region «Variables»

    private static DateTime mApplicationStart = DateTime.Now;
    private static DateTime mApplicationStartFinished = DateTime.MinValue;

    private static bool firstEndRequestAfterStart = true;

    private static bool? mApplicationInitialized = null;

    private static object mLock = new object();

    /// <summary>
    /// Windows identity
    /// </summary>
    private static WindowsIdentity mWindowsIdentity = null;

    #endregion


    #region «Properties»

    /// <summary>
    /// Date and time of the application start.
    /// </summary>
    public static DateTime ApplicationStart
    {
        get
        {
            return mApplicationStart;
        }
    }


    /// <summary>
    /// Date and time when the application start (initialization) finished its execution
    /// </summary>
    public static DateTime ApplicationStartFinished
    {
        get
        {
            return mApplicationStartFinished;
        }
    }


    /// <summary>
    /// Application initialized
    /// </summary>
    public static bool ApplicationInitialized
    {
        get
        {
            if (mApplicationInitialized == null)
            {
                mApplicationInitialized = false;
            }

            return mApplicationInitialized.Value;
        }
    }

   
    #endregion


    #region «Application events»

    /// <summary>
    /// Application start event handler
    /// </summary>
    public void Application_Start(object sender, EventArgs e)
    {
#if DEBUG
        // Set debug mode
        SystemHelper.IsWebProjectDebug = true;
#endif
    }


    /// <summary>
    /// Application error event handler
    /// </summary>
    public void Application_Error(object sender, EventArgs e)
    {
        CMSApplication.BeforeAplicationError(sender, e);

        // Log the error
        LogLastApplicationError();

        CMSApplication.AfterApplicationError(sender, e);
    }


    /// <summary>
    /// Application end event handler
    /// </summary>
    public void Application_End(object sender, EventArgs e)
    {
        CMSApplication.BeforeAplicationEnd(sender, e);

        try
        {
            // Log the application end
            LogApplicationEnd();

            // Delete temporary directory which is used for excel file creation
            DataHelper.DeleteExcelTempDirectory();
        }
        catch
        {
        }

        CMSApplication.AfterApplicationEnd(sender, e);
    }

    #endregion


    #region «Session events»

    /// <summary>
    /// Session start event handler
    /// </summary>
    public void Session_Start(object sender, EventArgs e)
    {
        DebugHelper.SetContext(«Session_Start»);
        CMSSession.BeforeSessionStart(sender, e);

        if (SqlHelperClass.IsConnectionStringInitialized)
        {
            string siteName = CMSContext.CurrentSiteName;

            // If path was rewritten log session
            if (URLRewriter.CurrentStatus == URLRewritingResultEnum.PathRewritten)
            {
                // Add sesssion to the session manager
                if (SessionManager.OnlineUsersEnabled && !UrlHelper.IsExcludedSystem(URLRewriter.CurrentRelativePath))
                {
                    SessionManager.UpdateCurrentSession(null);
                }
            }

            if (siteName != «»)
            {
                // Process the URL referrer data
                ProcessReferrer(siteName);

                // Initialize the current visit status
                if (AnalyticsHelper.AnalyticsEnabled(siteName))
                {
                    InitializeVisitStatus();
                }

                // If authentication mode is Windows, set user UI culture
                if (RequestHelper.IsWindowsAuthentication() && UserInfoProvider.IsAuthenticated())
                {
                    UserInfo currentUser = CMSContext.CurrentUser;
                    if (!currentUser.IsPublic())
                    {
                        UserInfoProvider.SetPreferredCultures(currentUser);
                    }
                }
            }
        }

        // Count the session
        RequestHelper.TotalSessions++;

        CMSSession.AfterSessionStart(sender, e);
        DebugHelper.ReleaseContext();
    }


    /// <summary>
    /// Session end event handler
    /// </summary>
    public void Session_End(object sender, EventArgs e)
    {
        CMSSession.BeforeSessionEnd(sender, e);

        if (SqlHelperClass.IsConnectionStringInitialized)
        {
            // Removes expired sessions
            if (SessionManager.OnlineUsersEnabled)
            {
                SessionManager.RemoveExpiredSessions();
            }
        }

        CMSSession.AfterSessionEnd(sender, e);
    }

    #endregion


    #region «Request events»

    public void Application_BeginRequest(object sender, EventArgs e)
    {
        // Check the application validity
        LicenseHelper.CheckValidity();

        // Enable request debugging

        // Application start events
        FirstRequestInitialization(sender, e);

        CMSRequest.BeforeBeginRequest(sender, e);

        // Check if Database installation needed
        if (InstallerFunctions.InstallRedirect())
        {
            return;
        }

        // Enable debugging
        SetInitialDebug();

        CMSRequest.AfterBeginRequest(sender, e);
    }


    /// <summary>
    /// Request authentication handler
    /// </summary>
    public void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        CMSRequest.BeforeAuthenticateRequest(sender, e);

        CMSRequest.AfterAuthenticateRequest(sender, e);
    }


    /// <summary>
    /// Request authorization handler
    /// </summary>
    public void Application_AuthorizeRequest(object sender, EventArgs e)
    {
        RequestHelper.LogRequestOperation(«AuthorizeRequest», null, 0);
        DebugHelper.SetContext(«AuthorizeRequest»);
        CMSRequest.BeforeAuthorizeRequest(sender, e);

        // Check the excluded status
        string relativePath = URLRewriter.CurrentRelativePath;
        ExcludedSystemEnum excludedEnum = UrlHelper.IsExcludedSystemEnum(relativePath);

        ViewModeOnDemand viewMode = new ViewModeOnDemand();
        SiteNameOnDemand siteName = new SiteNameOnDemand();

        // Try to send the output from the cache without URL rewriting
        if (SendOutputFromCache(relativePath, excludedEnum, viewMode, siteName))
        {
            return;
        }

        // Perform the URL rewriting
        RewriteUrl(relativePath, excludedEnum, viewMode, siteName);

        CMSRequest.AfterAuthorizeRequest(sender, e);
        DebugHelper.ReleaseContext();
    }


    /// <summary>
    /// Acquire request state event handler
    /// </summary>
    public void Application_AcquireRequestState(object sender, EventArgs e)
    {
        RequestHelper.LogRequestOperation(«AcquireRequestState», null, 0);
        DebugHelper.SetContext(«AcquireRequestState»);
        CMSRequest.BeforeAcquireRequestState(sender, e);

        // Check the page security
        CheckSecurity();

        CMSRequest.AfterAcquireRequestState(sender, e);
        DebugHelper.ReleaseContext();
    }


    /// <summary>
    /// End request event handler
    /// </summary>
    protected void Application_EndRequest(Object sender, EventArgs e)
    {
        RequestHelper.LogRequestOperation(«EndRequest», HttpContext.Current.Response.Status.ToString(), 0);
        DebugHelper.SetContext(«EndRequest»);
        CMSRequest.BeforeEndRequest(sender, e);

        // Register the debug logs
        if (CMSFunctions.AnyDebugEnabled)
        {
            RequestHelper.LogRequestValues(true, true, true);
            DebugHelper.RegisterLogs();
        }

        // If not using automatic scheduler, run scheduler from the request
        if (SqlHelperClass.IsConnectionStringInitialized)
        {
            // Restore the response cookies if fullpage caching is set
            if ((URLRewriter.CurrentOutputCache > 0) && (URLRewriter.CurrentStatus != URLRewritingResultEnum.GetFile))
            {
                CookieHelper.RestoreResponseCookies();
            }

            // Additional tasks within first request end
            if (firstEndRequestAfterStart)
            {
                firstEndRequestAfterStart = false;

                // Process synchronization tasks
                WebSyncHelper.ProcessMyTasks();

                // Send all the remaining queued e-mails
                SendNewsletterEmails();

                // Run smart search

                SearchTaskInfoProvider.ProcessTasks();
            }
            else
            {
                // Attempt to run the scheduler
                if (!RequestHelper.IsAsyncPostback())
                {
                    RunScheduler();
                }
            }

            // Run web farm updater if it is required within current request
            WebSyncHelper.SynchronizeWebFarm();

        }

        CMSRequest.AfterEndRequest(sender, e);

        // Write SQL query log
        DebugHelper.ReleaseContext();
        ConnectionHelper.WriteRequestLog();
        SecurityHelper.WriteRequestLog();
    }

    #endregion


    #region «Overriden methods»

    /// <summary>
    /// Custom cache parameters processing
    /// </summary>
    public override string GetVaryByCustomString(HttpContext context, string custom)
    {
        if ((HttpContext.Current == null) || (context == null))
        {
            return «»;
        }

        // Do not cache on postback
        if (UrlHelper.IsPostback())
        {
            Response.Cache.SetNoStore();
            return Guid.NewGuid().ToString();
        }

        PageInfo currentPage = CMSContext.CurrentPageInfo;
        string result = null;

        // Cache control
        if ((currentPage != null) && !custom.StartsWith(«control;»))
        {
            // Check page caching minutes
            int cacheMinutes = currentPage.NodeCacheMinutes;
            if (cacheMinutes <= 0)
            {
                Response.Cache.SetNoStore();
                return Guid.NewGuid().ToString();
            }
        }

        SiteNameOnDemand siteName = new SiteNameOnDemand();
        ViewModeOnDemand viewMode = new ViewModeOnDemand();

        // Parse the custom parameters
        string contextString = CMSContext.GetContextCacheString(custom, viewMode, siteName);
        if (contextString == null)
        {
            // Do not cache
            Response.Cache.SetNoStore();
            return Guid.NewGuid().ToString();
        }
        else
        {
            result = «cached» + contextString;
        }

        return result.ToLower();
    }

    #endregion


    #region «Methods»

    /// <summary>
    /// Attempts to send the output of the page from the cache
    /// </summary>
    /// <param name=»relativePath»>Relative path</param>
    /// <param name=»excludedEnum»>Excluded page status</param>
    /// <param name=»viewMode»>View mode</param>
    /// <param name=»siteName»>Site name</param>
    private static bool SendOutputFromCache(string relativePath, ExcludedSystemEnum excludedEnum, ViewModeOnDemand viewMode, SiteNameOnDemand siteName)
    {
        if (OutputFilter.UseOutputFilterCache && ((excludedEnum == ExcludedSystemEnum.NotExcluded) || (excludedEnum == ExcludedSystemEnum.Handler404)))
        {
            if (relativePath.StartsWith(«/getfile/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/getmetafile/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/getmediafile/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/getattachment/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/cmsgetattachment/», StringComparison.CurrentCultureIgnoreCase) ||
                relativePath.StartsWith(«/trackback/», StringComparison.CurrentCultureIgnoreCase))
            {
                // Do nothing for special paths
            }
            else
            {
                // Ensure the culture
                PreferredCultureOnDemand culture = new PreferredCultureOnDemand();
                URLRewriter.ValidateCulture(siteName.Value, culture, null);

                // Try to get result from the cache
                URLRewritingResultEnum status = URLRewritingResultEnum.Unknown;
                if (OutputFilter.SendOutputFromCache(viewMode, siteName, out status))
                {
                    switch (status)
                    {
                        // Document page
                        case URLRewritingResultEnum.PathRewritten:
                            {
                                // Log the visitor
                                LogVisitor(siteName);
                            }
                            break;
                    }

                    return true;
                }
            }
        }

        return false;
    }


    /// <summary>
    /// Rewrites the URL and performs all operations required after URL rewriting
    /// </summary>
    /// <param name=»relativePath»>Relative path</param>
    /// <param name=»excludedEnum»>Excluded page status</param>
    /// <param name=»viewMode»>View mode</param>
    /// <param name=»siteName»>Site name</param>
    ///private static void RewriteUrl(string relativePath, ExcludedSystemEnum excludedEnum, ViewModeOnDemand viewMode, SiteNameOnDemand siteName)
    {
        bool checkParameters = true;

        URLRewritingResultEnum status = URLRewriter.RewriteUrl(relativePath, excludedEnum, siteName, viewMode);
        switch (status)
  

  • Remove From My Forums
  • Вопрос

  • При попытке изменить уровень видения журнала событий возникает следующая ошибка:

    Через консоль Exchange — Длина не может быть меньше нуля. Имя параметра lenght

    При попытке изменить видения журнала событий через PowerShell

    [PS] C:Documents and SettingsDomРабочий стол>Get-EventLogLevel
    WARNING: Произошла непредвиденная ошибка. Создается отладочная информация:
    Длина не может быть меньше нуля.
    Имя параметра: length
    Get-EventLogLevel : Длина не может быть меньше нуля.
    Имя параметра: length
    At line:1 char:17
    + Get-EventLogLevel <<<<
    [PS] C:Documents and SettingsDomРабочий стол>


    Была ли у вас такая ситуация?

    • Перемещено

      12 марта 2012 г. 7:37
      forum merge (От:Exchange Server 2007)

Ответы

  • Проверьте установленные значения в реестре:

     Изменение уровня ведения журнала для процесса Exchange с помощью редактора реестра

    1. Запустите редактор реестра (regedit).

    2. Найдите следующий раздел реестра: HKLMSYSTEMCurrentControlSetServices<Component Name>Diagnostics

    3. В области сведений измените Значение параметра Общие на новое значение.


    Если ответ Вам помог, нажмите на изображение зеленой галочки — «пометить как ответ». Так же, Вы можете пометить это сообщение как «полезное», нажав на ссылку «проголосовать за полезное сообщение».

    • Помечено в качестве ответа
      Kudinov N.A. _
      26 февраля 2010 г. 8:11

Mi Flash: ошибки и как их исправить

Привет, друзья!

В этой статье мы рассмотрим всевозможные ошибки, с которыми можно столкнуться при прошивке смартфонов Xiaomi официальным способом через программу Mi Flash. А главное — рассмотрим варианты их решения. Да, несмотря на то, что процесс установки прошивки достаточно простой, нередко можно встретиться с ошибками.

📥 Скачать рабочую версию Mi Flash можно здесь: xiaomisir.ru/files/mi-flash

Прежде всего стоит учитывать базовые рекомендации: 
Используйте оригинальные USB-кабели
• Подключайтесь к разъему USB 2.0 (не 3.0)
• Не используйте русские буквы в названиях папок, куда распаковывается прошивка

А также перед прошивкой внимательно посмотрите нашу видеоинструкцию от начала до конца.

Список ошибок и способы исправления:

Ошибка: Missmatching image and device (несоответствующий образ или устройство)
Решение: Скачана прошивка не для вашего устройства. Повторно загрузите подходящую именно для вашей модели. Чтобы точно определить модель вашего устройства и скачать подходящую прошивку, установите на смартфон приложение AIDA64 и в разделе «Система» запомните пункт «Устройство» — именно это кодовое имя устройства вам и понадобится при выборе прошивки. Теперь остается перейти на страницу скачивания прошивки miui.xiaomisir.ru и в поиск ввести это имя устройства. Таким образом вы получите полный список прошивок конкретно для вашего устройства.

Ошибка: current device antirollback version is greater than this package
Решение: вы пытаетесь установить очень старую версию прошивки, откат на которую уже запрещен.

Ошибка: flashing is not allowed in lock state
Решение: Загрузчик заблокирован. Необходимо его разблокировать перед прошивкой. Сделать это можно по следующей видеоинструкции.

Ошибка: Reached the end of the file 0x80070026 (достигнут конец файла)
Решение: используйте рекомендуемую версию программы MiFlash по ссылке.

Ошибка: Cannot receive hello packet (Не удается получить пакет приветствия) или Try to reset status
Решение: Попробуйте переключить кабель в другой порт USB 2.0. Проблема часто встречается на Windоws 7 и 8/8.1.

Ошибка: The specified file can not be found 0x80070002 (указанный файл не может быть найден)
Решение: Программа не может найти нужный файл для прошивки, например, flash_all.bat. Повторно скачайте архив с прошивкой и корректно распакуйте его, как показано в видеоинструкции. Обратите внимание, что файл с прошивкой для Mi Flash должен быть в формате .tgz. Если он в формате .zip — вероятно, вы скачали версию для Recovery.

Ошибка: Unspecified error 0xffffffff.
Решение: Необходимо вручную указать путь к файлу flash_all.bat (находится в папке с распакованной прошивкой).

Ошибка: 0x8007007b
Решение: Путь к файлу содержит русские буквы, либо в названии самого файла присутствует кириллица. Важно использовать исключительно латинские буквы. Также рекомендуется распаковывать программу Mi Flash и саму прошивку на системный диск (С).

Ошибка: Заданное приведение является недопустимым.
Решение: используйте рекомендуемую версию программы MiFlash по ссылке.

Ошибка: 0x80004005 FAILED (remote: unknown command).
Решение: Возможно скачана прошивка не для вашего устройства. Повторно загрузите подходящую именно для вашей модели.

Ошибка: Недостаточно ресурсов памяти для завершения операции 0x8007000e.
Решение: вашему ПК недостаточно оперативной памяти для установки прошивки. Попробуйте закрыть все остальные программы.

Ошибка: Длина не может быть меньше нуля.
Решение: Отключите цифровую подпись драйверов и подключите кабель в USB 2.0.

Ошибка: Failed Remоte: Partition Flashing Is Not Allowed
Решение: Загрузчик заблокирован. Необходимо его разблокировать перед прошивкой. Сделать это можно по следующей видеоинструкции.

Ошибка: Flash crclist error
Решение: Прошивка распакована некорректно. Воспользуйтесь бесплатным архиватором 7zip, а также распаковывайте прошивку на диск С и не используйте длинные названия папок.

Ошибка: Can not found file flash_all.bat.
Решение: Не найден необходимый файл для прошивки flash_all.bat. Перейдите в настройки MiFlash и в пункте «Advаnced» укажите путь к этому файлу (он находится в папке с распакованной прошивкой)

Ошибка: Can not fоund file flаsh_all_lock.bat.
Решение: Не найден необходимый файл для прошивки flash_all.bat. Перейдите в настройки MiFlash и в пункте «Advаnced» укажите путь к этому файлу (он находится в папке с распакованной прошивкой)

Ошибка: Несоответствие изображения и ошибки устройства.
Решение: Убедитесь, что смартфон находится в режиме FASTBOOT (войти в этот режим можно удержанием клавиш громкости вниз и питания из выключенного состояния). Затем повторно подключите смартфон к ПК через USB 2.0.

Ошибка: В экземпляре объекта не задана ссылка на объект.
Решение: Проблема чаще всего появляется на 32-битной версии Windоws. Желательно использовать 64 bit.

Ошибка: Cоuldn’t find flash script.
Решение: Корректно укажите папку с распакованной прошивкой. Как это сделать — показано в видеооинструкции.

Ошибка: ERROR: Время ожидания операции записи истекло.
Решение: Неполадка возникает из-за отсутствия драйверов. Если программа не видит прошивку, проверьте названия папок и файлов. Не забудьте перезагрузить ПК.

Ошибка: Синтаксическая ошибка в имени файла.
Решение: Вероятно, вы пытаетесь установить прошивку для Recovery в формате .zip. Необходимо скачать прошивку Fаstboot с расширением tgz и распаковать из двойного архива.

Ошибка: ACK cоunt don’t match.
Решение: Вероятно, вы пытаетесь установить прошивку для Recovery в формате .zip. Необходимо скачать прошивку Fаstboot с расширением tgz и распаковать из двойного архива. Убедитесь, что в архиве нет лишних папок «MЕTA-INF» и т.д. Должна быть только «imаges» и файлы с расширением .bat и .sh.

Ошибка: Flash TZ error.
Решение: Обычно ошибка появляется при использовании китайской прошивки. Скачайте глобальную прошивку (Glоbal ROM) и убедитесь, что загрузчик разблокирован.

Ошибка: You are nоt authоrized to download Mi Flash.
Решение: Необходимо авторизоваться для прошивки. Запустите программу для авторизации из папки auth и войдите в Mi аккаунт.

Ошибка: Flаsh Partition Error.
Решение: Разблокируйте загрузчик и при прошивке НЕ выставляйте опцию «Clеan all and lock, иначе загрузчик заблокируется обратно после прошивки.

Ошибка: Not catch checkpoint.
Решение: Не обращайте внимание данную неполадку, а просто попробуйте перепрошиться через TеstPoint.

Ошибка: Необрабатываемое исключение в приложении.
Решение: Ошибка может появляться при неправильной установке драйверов. Удалите приложение, повторно загрузите все нужные файлы и повторите попытку. Так же есть множество других факторов, которые могут влиять на прошивку, и их нельзя предугадать.

Ошибка: Can not read frоm port com.
Решение: Подключите смартфон в разъем USB 2.0. Если не помогает, возможно, поможет только прошивка в режиме EDL.

Ошибка: Ping target via firеhose.
Решение: Попробуйте перезагрузить ПК и повторить установку прошивки.

Ошибка: Требуемый ресурс занят (0x800700aa).
Решение: Попробуйте перезагрузить ПК и повторить установку прошивки.

Ошибка: Can not fоund programmer file.
Решение: Убедитесь, что скачана прошивка именно для Fastboоt в формате tgz и корректно распакована.

Ошибка: Flаsh xbl error.
Решение: Убедитесь, что вы скачали соответствующую прошивку, разблокировали загрузчик, скачали рекомендуемую версию MiFlash и корректно распаковали прошивку.

MIUI ROM Flashing Tool – это программа, с помощью которой можно прошить телефон Xiaomi, используя режим Fastboot. Утилита довольно проста в использовании, но в ней часто возникают неполадки, которые мешают корректно перепрошить смартфон. В статье мы рассмотрим все известные ошибки MiFlash и выясним, как их решить.

Популярные причины возникновения ошибок

Для того чтобы прошивка на смартфон или планшет Xiaomi установилась нормально — нужно выполнить большое количество подготовительных действий. Но даже при их выполнении, это не избавит вас от банальных причин в работе Ми Флэш. Вот список общих советов:

  • Отсутствие необходимых драйверов. Нужно самостоятельно поставить драйвера, если они не установились автоматически после первого подключения смартфона к компьютеру по USB. Инструкция есть в нашем видео.
  • Старая версия программы. Старайтесь всегда выбирать самую свежую сборку МиФлеш.
  • Неподходящая прошивка. Загружайте только ту версию MIUI, которая подходит под вашу модель. Например, владельцу Redmi 8 не подойдет сборка для Redmi 8A. Также обращайте внимание на архив, который скачиваете: у него должно быть расширение .tgz.
  • Mi-аккаунт не был авторизован. Не рекомендуется работать с MiFlash без авторизации учетной записи Xiaomi. Подробности мы описывали в отдельной статье.
  • Поврежденный файл прошивки (один или несколько). Такое случается, если архив загружался с подозрительного источника или он был неправильно распакован.
  • Русские буквы в названии папки или файла. На пути к прошивке не должна встречаться кириллица. Допускаются только латинские символы.
  • Телефон подключен к ПК через порт USB 3.0. Используйте разъем USB 2.0 и кабель, который шел в комплекте с мобильным устройством.

Полная инструкция по прошивке через Fastboot есть здесь.

Известные ошибки MiFlash и их решение

Теперь рассмотрим конкретные ошибки, которые может выдавать Xiaomi Flashing Tool. Подробнее о самой программе.

Ошибка: Reached the end of the file (0x80070026).
Решение: Если программа показывает, что достигнут конец файла, установите более новую версию MiFlash. Также можно попробовать использовать Pro версию.

Ошибка: Cannot receive hello packet.
Решение: Ошибка может обозначаться как «Не удается получить пакет приветствия» или «Try to reset status». Чаще всего помогает переключение кабеля в другой разъем, либо использование другого компьютера. Проблема часто появляется на Windows 7 и 8/8.1.

Ошибка: The specified file can not be found (0x80070002).
Решение: Неполадка «Не удается найти указанный файл» означает, что утилита не может отыскать определенный файл (чаще всего это flash_all.bat). Повторно загрузите архив с прошивкой или самостоятельно найдите недостающий файл. Если проблема повторяется — попробуйте переустановить папку с программой.

Ошибка: Unspecified error (0xffffffff).
Решение: При надписи «Undefined error» нужно самостоятельно указать путь к файлу flash_all.bat. После этого неопознанная ошибка пропадет.

Ошибка: 0x8007007b.
Решение: Путь к файлу содержит кириллицу, либо в названии самого файла есть русские буквы. Переименуйте все в латиницу. Также проверьте чтобы все файлы для прошивки находились на системной диске (чаще всего это диск С).

Ошибка: Mismatching image and device.
Решение: Вы скачали прошивку, которая не предназначена для вашего устройства. Повторно загрузите подходящую версию.

Ошибка: Заданное приведение является недопустимым.
Решение: Скачайте предыдущую версию Miflash Flashing Tool.

Ошибка: 0x80004005 FAILED (remote: unknown command).
Решение: Загрузите версию оболочки, которая подходит для вашей модели смартфона, чтобы избавиться от неполадки «remote: data too large».

Ошибка: Недостаточно ресурсов памяти для завершения операции (0x8007000e).
Решение: Используйте компьютер с большим количеством оперативной памяти, либо попробуйте поставить прошивку через TWRP Recovery.

Ошибка: Длина не может быть меньше нуля.
Решение: Отключите цифровую подпись драйверов и подключите кабель в порт USB 2.0. Как это сделать читайте в наших статьях о подключении телефона к компьютеру.

Ошибка: Failed Remote: Partition Flashing Is Not Allowed
Решение: Строка «critical partition flashing is not allowed» означает, что загрузчик заблокирован. Попробуйте прошить телефон через режим EDL, или активируйте бутлоадер.

Ошибка: Flash crclist error.
Решение: Неполадка возникает при неправильной распаковке архива. Выберите другой архиватор, и поместите файлы в папку с коротким названием. Используйте бесплатный вариант — 7-Zip.

Ошибка: Can not found file flash_all.bat.
Решение: Отсутствует необходимый файл для прошивки под названием flash_all.bat. Зайдите в настройки MiFlash, перейдите в пункт «Advanced» и укажите файл xxx.bat.

Ошибка: Can not found file flash_all_lock.bat.
Решение: Попробуйте проделать такие же действия, как и в вышеописанной ошибке. Если не помогло – убедитесь, что архив полностью распакован и файлы находятся на системном диске.

Ошибка: Несоответствие изображения и ошибки устройства.
Решение: Повторно подключите смартфон к компьютеру, используя порт ЮСБ 2.0. Не забывайте, что сначала нужно перевести смартфон в режим Фастбут, а потом уже синхронизироваться с ПК.

Ошибка: В экземпляре объекта не задана ссылка на объект.
Решение: Проблема «Ссылка на объект не указывает на экземпляр объекта» чаще всего возникает на 32-битной версии Windows. Желательно использовать 64 bit. Если смена разрядности не помогла, проверьте, чтобы на пути к прошивке не встречалось русских букв, а кабель был подключен к разъему USB 2.0.

Ошибка: Couldn’t find flash script.
Решение: Укажите правильную папку с прошивкой, а именно «images».

Ошибка: ERROR: Время ожидания операции записи истекло.
Решение: Неполадка возникает из-за отсутствия драйверов. Посмотрите наше видео и самостоятельно поставьте необходимые драйвера. Если утилита не видит прошивку, перепроверьте названия папок и файлов. Не забудьте повторно перезапустить ПК.

Ошибка: Синтаксическая ошибка в имени файла.
Решение: MiFlash выдает такую ошибку при установке прошивки, которая предназначена для рекавери или «три точки». Найдите сборку для Fastboot с расширением tgz на сайте Mi Community в разделе Download ROM. Также причиной может стать кириллица в названии файла/папки.

Ошибка: ACK count don’t match.
Решение: Скачайте подходящий архив с прошивкой для вашей модели. Также проверьте, чтобы в архиве не было лишних папок, наподобие «META-INF». Должна быть только папка «images» и файлы с расширением .bat.

Ошибка: Flash TZ error.
Решение: Обычно ошибка появляется при использовании китайской прошивки. Выберите Global ROM и убедитесь, что загрузчик разблокирован.

Ошибка: You are not authorized to download Mi Flash.
Решение: Проблема указывает на то, что вы не авторизованы для работы в Ми Флэш. Нужно пройти EDL Authentication.

Ошибка: Flash Partition Error.
Решение: Разблокируйте загрузчик и при прошивке НЕ выставляйте опцию «Clean all and lock».

Ошибка: Not catch checkpoint.
Решение: Проигнорируйте данную неполадку и попробуйте перепрошиться через TestPoint.

Ошибка: Необрабатываемое исключение в приложении.
Решение: Ошибка может возникать при неправильной установке драйверов. Удалите программу, повторно загрузите все нужные файлы и повторите попытку. Только обратите внимание, что это не дает точной гарантии, что проблема исчезнет. Так как есть множество других факторов, которые могут влиять на прошивку, и их нельзя предугадать.

Ошибка: Can not read from port com.
Решение: Подключите мобильное устройство в разъем USB 2.0. Если оболочка не устанавливается – замкните контакты ТестПоинт.

Ошибка: Ping target via firehose.
Решение: Конкретных решений для устранения данной неполадки нет. Помогут универсальные способы, такие как переустановка Ми Флеш и повторное скачивание сборки.

Ошибка: Разрушительный сбой.
Решение: При возникновении данной ошибки воспользуйтесь универсальными методами. Проверьте, подходит ли скачанная прошивка для установки через Фастбут, и ориентирована ли она на вашу модель телефона. Отключите проверку подписи драйверов и вручную поставьте ADB-драйвера, если они не загрузились автоматически. Попробуйте более старую/новую версию MiFlash. Такие комбинации обычно помогают, если процесс прошивки прерывается, или программа вообще не видит телефон.

Ошибка: Требуемый ресурс занят (0x800700aa).
Решение: Также прибегните к универсальным вариантам.

Ошибка: Can not found programmer file.
Решение: Скачайте с официального источника прошивку, которая подходит для Fastboot.

Ошибка: Flash xbl error.
Решение: Попробуйте универсальные советы. Также проверьте: правильность выбранной прошивки; разблокированный загрузчик; текущую версию MIUI (возможно стоит сторонняя сборка); допущена ошибка при скачивании архива с прошивкой или он распакован неправильно; проблема с ARB.


Если вы нашли дополнительное решения для конкретной ошибки — напишите об этом, помогите другим пользователям!

Вы можете дополнить список ошибок и их решений. Напишите об этом в комментариях!

Теперь вы знаете, что делать при возникновении технических ошибок в MIUI ROM Flashing Tool. Как видим, большинство проблем решается довольно быстро и просто. Если возникнут дополнительные вопросы, обращайтесь в комментарии.

Гость

+

8

-

0

+

3

-

1

02.03.2016 13:22

Доброго времени суток! Я сам нашёл решение проблемы, никакие обновления, переустановки тут не причём. Вы вероятно как и я неоднократно пытались установить программу, не так ли?! После удаления, она не удаляется полностью а лишь частично, при этом весит каждая не удалённая часть очень много, заходите на диск С/пользователи/свой ник/Temp/дальше ищите самые большие объёмы папок, там эти засранцы и прячутся, удалите всех и проблема исчезнет.

+

6

-

0

18.01.2016 13:50

у меня тоже самое, как решать будем?

+

0

-

9

21.01.2016 13:39

Похоже, что у Вас в системе не установлены какие-то из обновлений. Выполните поиск обновлений и установите все, которые найдутся. В особенности, должна быть установлена библиотека

Microsoft .NET Framework

.

+

0

-

0

29.01.2016 12:53

Та же ерунда. Скачал последнюю версию BlueStacks. Пробовал устанавливать с Net Framework v4.52 v 4.61. Результат тот же. Windovs 7 x64. Обновляется постоянно.

+

0

-

0

29.01.2016 13:38

Проблема разрешилась после переустановки Java. Видимо не устраивала старая версия, хотя предыдущая версия BlueStacks с ней работала.

+

1

-

0

23.02.2016 18:16

Переустановка Java не помогла, версия 8u73 обе разрядности.

+

0

-

0

24.02.2016 09:48

А операционная система часом не Windows XP?

+

0

-

0

28.02.2016 13:38

Такая же ошибка,Java 8 Update 20,Microsoft .NET framework 4.5.3,Windows 7(64-bit)Что делать?

+

10

-

0

07.03.2016 20:35

Нажмите на .exe файл, зайдите в его Свойства и поменяйте имя установщика на BlueStacks_ThinInstaller, мне помогло. Спасибо английскому reddit’у!

+

1

-

1

07.03.2016 23:39

Да смена имени помогло спасибо!

+

0

-

0

27.03.2016 14:53

реально, столько мучался, смена имени реально помогло)

+

0

-

0

07.04.2016 13:32

Спасибо огромное, смена имени помогла!!Heart

+

0

-

0

01.06.2016 10:29

Спасибо помогло смена имя

+

4

-

0

21.08.2017 20:28

Имя какого файла нужно поменять? Пробовал менять XiaoMiFlash.exe на BlueStacks_ThinInstaller.exe, никакого эффекта. Bluestacks должен быть установлен?

Вопрос и ответы были вам полезны?


Да


Нет

Попробуйте также:

giraff

0 / 0 / 0

Регистрация: 18.01.2014

Сообщений: 70

1

.NET 4.x

Ошибка «Длина не может быть меньше нуля» при работе с текстовым файлом

08.10.2014, 12:28. Показов 6758. Ответов 9

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  string[] lines = File.ReadAllLines("Ip_port.txt");
            List<string> after = new List<string>();
            using (StreamWriter sw = new StreamWriter("Ip.txt"))
            {
                foreach (var line in lines)
                {
                    after.Add(line.Substring(line.IndexOf(':') + 1));
                    sw.WriteLine(line.Substring(0, line.IndexOf(':')));
                }
            }
            using (StreamWriter sw = new StreamWriter("Port.txt"))
            {
                foreach (var line in after)
                    sw.WriteLine(line);
            }

Сама ошибка «Необработанное исключение типа «System.ArgumentOutOfRangeException» в mscorlib.dll

Дополнительные сведения: Длина не может быть меньше нуля.»



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

08.10.2014, 12:28

9

79 / 79 / 37

Регистрация: 11.09.2014

Сообщений: 579

08.10.2014, 12:38

2

в какой строке ошибка?



0



0 / 0 / 0

Регистрация: 18.01.2014

Сообщений: 70

08.10.2014, 12:47

 [ТС]

3

Цитата
Сообщение от Baky
Посмотреть сообщение

в какой строке ошибка?

7-8



0



79 / 79 / 37

Регистрация: 11.09.2014

Сообщений: 579

08.10.2014, 12:51

4

странно все в порядке. Может в файлах косяк?!



0



0 / 0 / 0

Регистрация: 18.01.2014

Сообщений: 70

08.10.2014, 12:58

 [ТС]

5

Цитата
Сообщение от Baky
Посмотреть сообщение

странно все в порядке. Может в файлах косяк?!

Там работа только с 1 файлом который разбивает на 2.
Пробовал по другому способу тоже такая ошибка.
Возможно я какие то библиотеки не дописал?



0



79 / 79 / 37

Регистрация: 11.09.2014

Сообщений: 579

08.10.2014, 13:00

6

ты от куда их берешь, сам создаешь или прога какая то делает?

Добавлено через 2 минуты
здесь только System.IO нужна. Брось файл



0



0 / 0 / 0

Регистрация: 18.01.2014

Сообщений: 70

08.10.2014, 13:03

 [ТС]

7

Файл Ip_port.txt создает программа, потом по нажатию кнопки должен сработать код который в теме, но он выдает ошибку.(Хотя когда то работал)



0



79 / 79 / 37

Регистрация: 11.09.2014

Сообщений: 579

08.10.2014, 13:05

8

если хочешь могу переделать до рабочего состояния



0



0 / 0 / 0

Регистрация: 18.01.2014

Сообщений: 70

08.10.2014, 13:07

 [ТС]

9

Цитата
Сообщение от Baky
Посмотреть сообщение

если хочешь могу переделать до рабочего состояния

Давай



0



Baky

79 / 79 / 37

Регистрация: 11.09.2014

Сообщений: 579

08.10.2014, 13:15

10

Лучший ответ Сообщение было отмечено giraff как решение

Решение

и так косяк в том что у тебя в конце файла две строки ровны пустому значения следовательно не возможно считать длину строки и получить нужную часть строки: в общем есть два варианта, лови оба:
1)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            string[] lines = File.ReadAllLines("Ip_port.txt");
            List<string> after = new List<string>();
            using (StreamWriter sw = new StreamWriter("Ip.txt"))
            {
                foreach (var line in lines)
                {
                    if (line != "")
                    {
                        after.Add(line.Substring(line.IndexOf(':') + 1));
                        sw.WriteLine(line.Substring(0, line.IndexOf(':')));
                    }
                }
            }
            using (StreamWriter sw = new StreamWriter("Port.txt"))
            {
                foreach (var line in after)
                    sw.WriteLine(line);
            }

2)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            string[] lines = File.ReadAllLines("Ip_port.txt");
            List<string> after = new List<string>();
            using (StreamWriter sw = new StreamWriter("Ip.txt"))
            {
                foreach (var line in lines)
                {
                    try
                    {
                        after.Add(line.Substring(line.IndexOf(':') + 1));
                        sw.WriteLine(line.Substring(0, line.IndexOf(':')));
                    }
                    catch { }
                }
            }
            using (StreamWriter sw = new StreamWriter("Port.txt"))
            {
                foreach (var line in after)
                    sw.WriteLine(line);
            }

Добавлено через 1 минуту
отличия лишь в том что в первом случае проверяется пустая ли строка, если пустая то ничего не записывается и идет дальше. Во втором случае все что внутри тела try проверяется на ошибки — если они есть то ничего не происходит и цикл идет дальше…



1



MiFlash

Содержание:

  1. Популярные причины возникновения ошибок
  2. Известные ошибки MiFlash и их решение

MIUI ROM Flashing Tool – это приложение, которое может прошить смартфон Xiaomi, используя режим Fаstboot. Утилита проста в использовании, но в ней часто появляются неполадки, которые мешают корректно перепрошить девайс.

Популярные причины возникновения ошибок

Для того чтобы прошивка на смартфон или планшет Xiаomi установилась как положено — нужно выполнить большое количество действий. Вот список общих советов:

Отсутствие необходимых драйверов.

Нужно самим поставить драйвера, если они не установились автоматически после первого подключения мобильного гаджета к компьютеру по USB.

Старая версия программы.

Старайтесь всегда выбирать самую новую сборку МиФлеш.

Неподходящая прошивка.

Загружайте только ту версию MIUI, которая подходит именно под Вашу модель. Также обращайте внимание на архив, который скачиваете: у него должно стоять расширение .tgz.

Mi-аккаунт не авторизован.

Не рекомендуется работать с MiFlash без авторизации учетной записи Xiаomi.

Поврежденный файл прошивки (один или несколько).

Такое происходит, когда архив загружался с подозрительного источника или он был неправильно распакован.

Русские буквы в названии папки или файла.

На пути к прошивке не должна быть прописана кириллица. Допускаются только латинские символы.

Телефон подключен к ПК через порт USB 3.0.

Используйте разъем USB 2.0 и кабель, который шел в комплекте со смартфоном.

Известные ошибки MiFlash и их решение

Теперь обратим внимание на конкретные ошибки, которые может выдавать Xiаomi Flashing Tool. Подробнее о самой программе.

Ошибка: Reached the end of the file (0x80070026).
Решение: Если программа показывает, что достигнут конец файла, просто установите более свежую версию MiFlash. Также можно попробовать использовать Prо версию.

Ошибка: Cannot receive hello packet.
Решение: Ошибка расшифровывается как «Не удается получить пакет приветствия» или «Try to reset status». Поможет переключение кабеля в другой разъем, либо использование другого РС. Проблема часто появляется на Windоws 7 и 8/8.1.

Ошибка: The specified file can not be found (0x80070002).
Решение: Неполадка «Не удается найти указанный файл» значит, что программа не может найти определенный файл (например flash_all.bat). Повторно загрузите архив с прошивкой или сами найдите недостающий файл. Если проблема снова повторяется — попробуйте переустановить папку с программой.

Ошибка: Unspecified error (0xffffffff).
Решение: При надписи «Undefined error» нужно самим указать путь к файлу flash_all.bat. После этого ошибка пропадет.

Ошибка: 0x8007007b.
Решение: Путь к файлу содержит кириллицу, либо в названии самого файла были найдены русские буквы. Просто переименуйте все в латиницу. Также проверьте чтобы все файлы для прошивки находились на системной диске.

Ошибка: Mismatching image and device.
Решение: Вы скачали прошивку, которая идет не для Вашего девайса. Повторно загрузите подходящую Вам версию.

Ошибка: Заданное приведение является недопустимым.
Решение: Скачайте прошлую версию Miflash Flashing Tool.

Ошибка: 0x80004005 FAILED (remote: unknown command).
Решение: Загрузите версию оболочки, которая подходит для Вашей модели мобильного гаджета, чтобы избавиться от неполадки «remote: data too large».

Ошибка: Недостаточно ресурсов памяти для завершения операции (0x8007000e).
Решение: Компьютер долшен быть с большим количеством оперативной памяти, либо попробуйте поставить прошивку через TWRP Recоvery.

Ошибка: Длина не может быть меньше нуля.
Решение: Отключите цифровую подпись драйверов и подключите кабель в порт USB 2.0.

Ошибка: Failed Remоte: Partition Flashing Is Not Allowed
Решение: Строка «criticаl partitiоn flashing is nоt allоwed» означает, что загрузчик заблокирован. Попробуйте прошить через режим ЕDL, или активируйте бутлоадер.

Ошибка: Flash crclist error.
Решение: Такая ошибка появляется при неправильной распаковке архива. Выберите другой архиватор, и поместите файлы в папку с коротким названием.

Ошибка: Can not found file flash_all.bat.
Решение: Нету необходимого файла для прошивки под названием flash_all.bat. Зайдите в настройки MiFlash, перейдите в пункт «Advаnced» и укажите файл xxx.bat.

Ошибка: Can not fоund file flаsh_all_lock.bat.
Решение: Попробуйте проделать такие же действия, как и в вышеописанной ошибке. Если не спасло, то убедитесь, что архив полностью распакован и файлы находятся на системном диске.

Ошибка: Несоответствие изображения и ошибки устройства.
Решение: Повторно подключите мобильный гаджет к компьютеру, используя порт USB 2.0. Для начала нужно перевести смартфон в режим Фастбут, а потом уже синхронизироваться с РС.

Ошибка: В экземпляре объекта не задана ссылка на объект.
Решение: Проблема «Ссылка на объект не указывает на экземпляр объекта» чаще всего появляется на 32-битной версии Windоws. Желательно использовать 64 bit. Если и это не помогло, то проверьте, чтобы на пути к прошивке не встречалось русских букв, а кабель был подключен к разъему USВ 2.0.

Ошибка: Cоuldn’t find flash script.
Решение: Укажите правильную папку с прошивкой, а именно «imаges».

Ошибка: ERROR: Время ожидания операции записи истекло.
Решение: Неполадка возникает из-за отсутствия драйверов. Если приложение не видит прошивку, проверьте названия папок и файлов. Не забудьте повторно перезапустить Ваш ПК.

Ошибка: Синтаксическая ошибка в имени файла.
Решение: MiFlаsh выдает такую ошибку при установке прошивки, которая изначально предназначена для рекавери или «три точки». Найдите сборку для Fаstboot с расширением tgz на сайте Mi Cоmmunity в разделе Downlоad ROM. Также причиной может оказаться кириллица в названии файла/папки.

Ошибка: ACK cоunt don’t match.
Решение: Скачайте подходящий архив с прошивкой для Вашей модели. Также проверьте, чтобы в архиве не было лишних папок, наподобие «MЕTA-INF». Должна быть только папка «imаges» и файлы с расширением .bat.

Ошибка: Flash TZ error.
Решение: Обычно ошибка появляется при использовании китайской прошивки. Выберите Glоbal ROM и убедитесь, что загрузчик разблокирован.

Ошибка: You are nоt authоrized to download Mi Flash.
Решение: Проблема указывает на то, что Вы не были авторизованы для работы в Ми Флэш. Нужно пройти EDL Authentication.

Ошибка: Flаsh Partition Error.
Решение: Разблокируйте загрузчик и при прошивке НЕ выставляйте опцию «Clеan all and lock».

Ошибка: Not catch checkpoint.
Решение: Не обращайте внимание данную неполадку, а просто попробуйте перепрошиться через TеstPoint.

Ошибка: Необрабатываемое исключение в приложении.
Решение: Ошибка может появляться при неправильной установке драйверов. Удалите приложение, повторно загрузите все нужные файлы и повторите попытку. Так же есть множество других факторов, которые могут влиять на прошивку, и их нельзя предугадать.

Ошибка: Can not read frоm port com.
Решение: Подключите мобильный гаджет в разъем USB 2.0. Если оболочка не устанавливается – замкните контакты ТестПоинт.

Ошибка: Ping target via firеhose.
Решение: Конкретных решений для устранения данной неполадки пока еще нет. Помогут универсальные способы, такие как переустановка Ми Флеш и повторное скачивание самой сборки.

Ошибка: Разрушительный сбой.
Решение: При появлении этой ошибки воспользуйтесь универсальными методами. Проверьте, подходит ли скачанная прошивка для установки через Фастбут, и подходит ли она на вашу модель мобильного гаджета. Отключите проверку подписи драйверов и вручную поставьте ADB-драйвера, если они не загрузились автоматически. Попробуйте более старую/новую версию MiFlаsh. Такие комбинации могут помочь, если процесс прошивки прерывается, или приложение вообще не видит телефон.

Ошибка: Требуемый ресурс занят (0x800700aa).
Решение: Также прибегните к универсальным вариантам.

Ошибка: Can not fоund programmer file.
Решение: Скачайте с официального источника прошивку, которая подходит для Fastboоt.

Ошибка: Flаsh xbl error.
Решение: Попробуйте универсальные советы. Проверьте правильность выбранной прошивки; разблокированный загрузчик; текущую версию MIUI; допущена ошибка при скачивании архива с прошивкой или он распакован неправильно; проблема с АRB.

Читать

OnePlus Ace 2 Pro

OnePlus Ace 2 Pro сможет порадовать не только чипом

Читать

Mate 60

Huawei Mate 60 могут выйти на 5G-чипах от Snapdragon

Читать

OPPO Find

Раскрыты первые секреты OPPO Find X7 Pro

Возможно, вам также будет интересно:

  • Ошибка длиною в жизнь фанфик
  • Ошибка дк1 на ваз 2112
  • Ошибка длиною в жизнь пикабу
  • Ошибка дифференциального реле давления при розжиге бош 4000
  • Ошибка дистрибутива что это такое

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии