2014-02-26 50 views
1

更新:這是代碼得到長度不能在EXE模式小於零的參數名稱長度

string path = Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("bin")); 

異常文本:

Length cannot be less than zero 
Parameter name : length 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box. 

************** Exception Text ************** 
System.ArgumentOutOfRangeException: Length cannot be less than zero. 
Parameter name: length 
    at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) 
    at System.String.Substring(Int32 startIndex, Int32 length) 
    at Negits_POS.frmItemEdit..ctor(String Strmode, String StrItemId) 
    at Negits_POS.frmItemDetails.btnEdit_Click(Object sender, EventArgs e) 
    at Negits_POS.frmItemDetails.dgItem_CellMouseDoubleClick_1(Object sender, DataGridViewCellMouseEventArgs e) 
    at System.Windows.Forms.DataGridView.OnCellMouseDoubleClick(DataGridViewCellMouseEventArgs e) 
    at System.Windows.Forms.DataGridView.OnMouseDoubleClick(MouseEventArgs e) 
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.DataGridView.WndProc(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 


************** Loaded Assemblies ************** 
mscorlib 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) 
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll 
---------------------------------------- 
Negits_POS 
    Assembly Version: 1.0.0.0 
    Win32 Version: 1.0.0.0 
    CodeBase: file:///C:/Program%20Files%20(x86)/Microsoft/PS/Negits_POS.exe 
---------------------------------------- 
System.Windows.Forms 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 built by: RTMRel 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll 
---------------------------------------- 
System.Drawing 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 built by: RTMRel 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll 
---------------------------------------- 
System 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 built by: RTMRel 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll 
---------------------------------------- 
Negits_DAL 
    Assembly Version: 1.0.0.0 
    Win32 Version: 1.0.0.0 
    CodeBase: file:///C:/Program%20Files%20(x86)/Microsoft/PS/Negits_DAL.DLL 
---------------------------------------- 
Negits_LIB 
    Assembly Version: 1.0.0.0 
    Win32 Version: 1.0.0.0 
    CodeBase: file:///C:/Program%20Files%20(x86)/Microsoft/PS/Negits_LIB.DLL 
---------------------------------------- 
System.Configuration 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll 
---------------------------------------- 
System.Xml 
    Assembly Version: 4.0.0.0 
    Win32 Version`enter code here`n: 4.0.30319.1 built by: RTMRel 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll 
---------------------------------------- 
System.Data 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll 
---------------------------------------- 
System.Core 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 built by: RTMRel 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll 
---------------------------------------- 
MySql.Data 
    Assembly Version: 6.8.3.0 
    Win32 Version: 6.8.3.0 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/MySql.Data/v4.0_6.8.3.0__c5687fc88969c44d/MySql.Data.dll 
---------------------------------------- 
System.Transactions 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll 
---------------------------------------- 
System.EnterpriseServices 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll 
---------------------------------------- 
System.Management`enter code here` 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100) 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll 
---------------------------------------- 
System.Numerics 
    Assembly Version: 4.0.0.0 
    Win32 Version: 4.0.30319.1 built by: RTMRel 
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll 
---------------------------------------- 
RabbitMQ.Client 
    Assembly Version: 3.2.3.0 
    Win32 Version: 3.2.3.0 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/RabbitMQ.Client/3.2.3.0__89e7d7c5feba84ce/RabbitMQ.Client.dll 
---------------------------------------- 

************** JIT Debugging ************** 
To enable just-in-time (JIT) debugging, the .config file for this 
application or computer (machine.config) must have the 
jitDebugging value set in the system.windows.forms section. 
The application must also be compiled with debugging 
enabled. 

For example: 

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


    When JIT debugging is enabled, any unhandled exception 
    will be sent to the JIT debugger registered on the computer 
    rather than be handled by this dialog box. 

當應用程序從EXE運行僅出現以下錯誤文件。當它以調試模式運行時,它不會拋出異常。如何擺脫這個錯誤?僅當用戶單擊代表上傳圖像選項的菜單項時纔會出現錯誤。

+4

而代碼是? – Prix

+0

尤其是'Negits_POS.frmItemEdit.ctor(String Strmode,String StrItemId)',因爲看起來,這是導致問題的方法。 – Spook

+0

該錯誤表示您向Substring方法提供的長度小於零。這可能會有所不同,這取決於您使用的數據,因此調試和運行exe的區別。如果使用相同的數據,則很可能會重現錯誤。一個好的第一步是在構造函數中查找對Substring的調用,並檢查哪些輸入數據可能導致長度小於零。特別注意計算或IndexOf的結果。 – Markus

回答

1

你必須檢查你的exe文件的完整路徑,如果bin存在

string path; 
if(Application.StartupPath.LastIndexOf("bin") >0) 
    string path = Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("bin")); 
else 
{ 
    string path = string.Empty 
    MessageBox("Check your path : " + Application.StartupPath); 
} 
0

如果你在IIS服務器configuation這一問題做了簡單的事情改變web.config文件中的連接字符串,如您的SQL Server名稱和服務器名稱,然後重新啓動iis,然後嘗試加載它工作的頁面

相關問題