Tag: invalidoperationexception

ConnectionString属性尚未初始化错误

我正在使用带有MySql DB的asp.net Web应用程序,以及以下connetcion字符串web.config: 这是我使用从web.config获取连接字符串的代码: System.configuration.configurationmanaget.connectionstrings[“techConnectionString”].connectionstring; 出于某种原因,我得到错误: ConnectionString属性尚未初始化。 在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。 堆栈跟踪是: [InvalidOperationException: The ConnectionString property has not been initialized.] System.Data.SqlClient.SqlConnection.PermissionDemand() +6316916 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6296606 System.Data.SqlClient.SqlConnection.Open() +300 我可以通过Visual Studio中的数据源连接到数据库,并从那里获取ConnectionString。 我真的需要一些帮助,我的连接字符串有什么问题吗?

为什么这个错误没有被抓住?

我的项目中有以下代码,deleteselector是一个包含datagridview(带有自动调整列)的表单。 try { if (deleteSelector.ShowDialog() == DialogResult.OK) { } } catch (InvalidOperationException) { //Bug workaround } try catch是因为一个带有gridview的弹出窗体会偶尔出现一次invalidoperationexception。 这是建议的解决方法,请参阅 http://connect.microsoft.com/VisualStudio/feedback/details/145633/invalidoperationexception-thrown-when-a-form-with-a-bound-datagridview-with-auto-sizing-columns-is-shown 早些时候,我在deleteSelector上使用了Show,并且解决方法工作得很好。 现在,使用showdialog似乎错误不再被捕获(我得到一个未捕获的错误消息)。 为什么错误没有被捕获?

C#控制台应用程序无效的操作exception

using System; using System.Collections.Generic; using System.Text; using System.Data.Sql; using System.Data.SqlClient; namespace BissUpdater { class Program { static void Main(string[] args) { string connectionString = “Data Source=H….; Initial Catalog=LANDesk; Persist Security Info=True; User ID=Mainstc; Password=xxxxxxxx”; SqlConnection con = new SqlConnection(connectionString); con.Open(); } } } SQL连接引发了无效的操作exception。 “操作无效。连接已关闭”。 这是我的完整代码。 在另一个程序中,它完美无缺。 这是第二次,这不起作用。 我正在使用VS2005 …也许我的程序已损坏? 堆栈跟踪: 在System.Data.SqlClient.SqlConnection.GetOpenConnection() 在System.Data.SqlClient.SqlConnection.get_ServerVersion()

为什么我们不能在枚举其键时更改字典的值?

class Program { static void Main(string[] args) { var dictionary = new Dictionary() { {“1”, 1}, {“2”, 2}, {“3”, 3} }; foreach (var s in dictionary.Keys) { // Throws the “Collection was modified exception…” on the next iteration // What’s up with that? dictionary[s] = 1; } } } 我完全理解为什么在枚举列表时抛出此exception – 在枚举期间,枚举对象的结构不会改变似乎是合理的。 但是,更改字典的值会改变其结构吗? 具体来说,其键的结构?

WPF DependencyObject调用线程exception

我有以下代码创建一个临时文件夹,并使用FileSystemWatcher轮询添加到Location属性上的文件夹的文件,并将它们添加到列表: Pastebin上的Scratchdisk.cs 。 我们的想法是创建一个Scratchdisk对象,并让FFmpeg将video帧提取到其中,FileSystemWatcher在FFmpeg创建它们时构建这些文件的列表,该列表显示为我的UI绑定的DependencyObject。 我像这样绑定Scratchdisk对象: … 在实际创建对象时,我得到以下exception: A first chance exception of type ‘System.InvalidOperationException’ occurred in WindowsBase.dll Additional information: The calling thread cannot access this object because a different thread owns it. 在第28行get { return (List)GetValue(FileListProperty); } get { return (List)GetValue(FileListProperty); } 我想我需要一个Dispatcher.Invoke,但我不知道在哪里,我不知道第二个线程在哪里创建。 我假设它与FileSystemWatcher写入文件列表有关。 有帮助吗? 谢谢!

线程无法访问该对象

我宣布了一个字段: WriteableBitmap colorBitmap; 然后我创建了一个简单的线程来执行某些操作 private void doSomething() { // … bla bla bla colorBitmap = new WriteableBitmap(/* parameters */); myImage.Source = colorBitmap; // error here:S } 在Windows_Loaded事件中,我声明并启动了一个新线程: private void window_Loaded(object sender, RoutedEventArgs e) { Thread th = new Thread(new ThreadStart(doSomething)); th.Start(); } 问题是我无法改变myImage的来源。 我有一个错误,如: InvalidOperationException未处理调用线程无法访问此对象,因为另一个线程拥有它。 我试图使用Dispatcher.Invoke,但它没有帮助… Application.Current.Dispatcher.Invoke((Action)delegate { myImage.Source = colorBitmap; }); 我正在寻找一些答案,但从来没有像我一样找到这个案子。 any1帮助我理解如何解决这样的问题(我最近遇到了同样的问题,但我无法调用该方法,因为其他线程拥有它)。

在c#中使用foreach循环时修改集合

基本上,我想在foreach循环内部从列表中删除一个项目。 我知道使用for循环时这是可能的,但出于其他目的,我想知道使用foreach循环是否可以实现这一点。 在python中,我们可以通过执行以下操作来实现此目的: a = [1, 2, 3, 4, 5, 6, 7, 8, 9] for i in a: print i if i == 1: a.pop(1) 这给出了以下输出 >>>1 3 4 5 6 7 8 9 但是当在c#中做类似的事情时,我得到一个InvalidOperationException,我想知道是否有办法解决这个问题, 而不仅仅是使用for循环 。 我抛出exception时使用的c#代码: static void Main(string[] args) { List MyList = new List(new string[] { “1”, “2”, “3”, “4”, “5”, […]

来自C#进程类的无效操作exception

当我使用VSTS调试器查看类Process实例的属性时,许多属性都标有InvalidOperationException 。 为什么? 我做错了吗? 我正在使用VSTS 2008 + C#+ .Net 2.0来开发控制台应用程序。 这是我的代码: System.Diagnostics.Process myProcess = new System.Diagnostics.Process(); myProcess.StartInfo.FileName = “IExplore.exe”; myProcess.StartInfo.Arguments = @”www.google.com”; myProcess.StartInfo.Verb = “runas”; myProcess.Start(); 以及调试器的屏幕截图:

如何将逻辑添加到现有依赖项属性回调?

我正在尝试将一个PropertyChangedCallback添加到UIElement.RenderTransformOriginProperty。 当我尝试覆盖PropertyMetadata时抛出exception。 我搜索过MSDN和谷歌,我能想到的就是这个 。 在该post的某些时候建议使用DependencyPropertyDescriptor.AddValueChanged,但这不会解决我的问题,因为这不是每个实例的回调。 我不明白这个例外意味着什么。 有谁知道我做错了什么? public class foo : FrameworkElement { private static void Origin_Changed( DependencyObject d, DependencyPropertyChangedEventArgs e) { } static foo() { PropertyMetadata OriginalMetaData = UIElement.RenderTransformOriginProperty.GetMetadata( typeof(FrameworkElement)); /*An exception is thrown when this line is executed: “Cannot change property metadata after it has been associated with a property”*/ OriginalMetaData.PropertyChangedCallback += new […]

由于在调用Application.Exit()时修改集合而导致的System.InvalidOperationException

我有这个非常,非常奇怪的错误,我从来没有能够确定(它很少发生)。 基本上,我有一个C#应用程序在退出时随机抛出一个未知的exception。 我这次设法在调试器中捕获它,结果是调用Application.Exit()抛出System.InvalidOperationException并带有以下消息: mscorlib.dll中发生了’System.InvalidOperationException’类型的第一次机会exception 补充信息:收集已修改; 枚举操作可能无法执行。 我不确定这个据称被修改的集合是什么 ,或者修改它的是谁。 堆栈跟踪不是很有用: mscorlib.dll!System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()+ 0x13f bytes System.Windows.Forms.dll!System.Windows.Forms.Application.ExitInternal()+ 0x112 bytes System.Windows.Forms.dll!System。 Windows.Forms.Application.Exit(System.ComponentModel.CancelEventArgs e)+ 0x65字节 知道如何找出哪些ArrayList已被修改? 我不认为这是我正在做的任何事情,更可能是我正在做的一个动作,即在MS没有预料到的操作过程中修改.NET框架的底层状态。