C# 什么会导致我的应用程序无法访问资源(.resx)文件

C# 什么会导致我的应用程序无法访问资源(.resx)文件,c#,winforms,resources,terminal-services,C#,Winforms,Resources,Terminal Services,Winforms c#应用程序在终端服务器上运行。按钮和菜单项的所有图像都作为资源存储在.resx文件中。在大量使用后,在使用系统时打开和关闭窗口,会引发“索引超出范围”异常,窗口不再打开。如果用户试图导航到系统的任何其他部分,它也会因同样的原因失败。将范围缩小到无法再加载的资源 有没有人知道是什么原因导致这种情况,或者我可以如何避免这种情况?我是否应该使用不同的方法来存储用于应用程序的图像 附加信息:结果表明用户收到的是“参数无效”异常,而不是索引超出范围。奇怪的是,在访问资源时,您会收到超出

Winforms c#应用程序在终端服务器上运行。按钮和菜单项的所有图像都作为资源存储在.resx文件中。在大量使用后,在使用系统时打开和关闭窗口,会引发“索引超出范围”异常,窗口不再打开。如果用户试图导航到系统的任何其他部分,它也会因同样的原因失败。将范围缩小到无法再加载的资源

有没有人知道是什么原因导致这种情况,或者我可以如何避免这种情况?我是否应该使用不同的方法来存储用于应用程序的图像


附加信息:结果表明用户收到的是“参数无效”异常,而不是索引超出范围。

奇怪的是,在访问资源时,您会收到超出范围的异常,主要是因为资源未存储在任何类型的集合中,有作为属性访问的,那么也许你的例外不是来自那里


Plz提供了一些关于您检索图像/按钮的方式的代码。

奇怪的是,您在访问资源时收到一个超出范围的异常,这主要是因为资源没有存储在任何类型的集合中,它们是作为属性访问的,所以您的异常可能不是来自那里


Plz提供了一些关于您检索图像/按钮的方式的代码。

您是否在使用这些资源后释放它们?听起来您的资源句柄快用完了(您看到的异常可能是一个危险信号)。

您是否在使用资源后释放它们?听起来您的资源句柄快用完了(而您看到的异常可能是一个令人费解的问题)。

发布异常的堆栈跟踪。还要告诉我们进程崩溃时使用了多少个句柄(使用SysInternals的ProcExp实用程序)。另外,请告诉我们进程崩溃时使用了多少个句柄(使用SysInternals的ProcExp实用程序)。使用以下语法检索所有按钮:button.Image=global::Namespace.Properties.Resources.Image_16;我有另一个我使用的图片框,我根据一个URL将其设置为图像:pictureBox.ImageLocation=URL;我没有这些控件的任何dispose代码。我认为可以,但不可能收到超出范围的异常,因为它不是集合。对。我和用户交谈过,他们说这是一个“参数无效”异常,而不是超出范围的异常。看看这个网站:“神秘的参数无效”,这也是一个可用图像和内存的问题,使用以下语法检索所有按钮:button.Image=global::Namespace.Properties.Resources.Image_16;我有另一个我使用的图片框,我根据一个URL将其设置为图像:pictureBox.ImageLocation=URL;我没有这些控件的任何dispose代码。我认为可以,但不可能收到超出范围的异常,因为它不是集合。对。我和用户交谈过,他们说这是一个“参数无效”异常,而不是超出范围的异常。看看这个网站:“神秘的参数无效”,这也是一个可用图像和内存的问题,由于这些是windows控件,其属性允许使用图像,所以我认为不需要自己发布资源。我使用的按钮和图片框都应该在窗体及其所有控件被释放时处理资源的释放。是吗?因为这些是windows控件,其属性允许使用图像,所以我认为不需要自己发布资源。我使用的按钮和图片框都应该在窗体及其所有控件被释放时处理资源的释放。对吗?