如果您想了解如何处理AccessViolationException和如何处理家庭矛盾的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何处理AccessViolationException的各个
如果您想了解如何处理 AccessViolationException和如何处理家庭矛盾的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何处理 AccessViolationException的各个方面,并为您解答如何处理家庭矛盾的疑在这篇文章中,我们将为您介绍如何处理 AccessViolationException的相关知识,同时也会详细的解释如何处理家庭矛盾的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- 如何处理 AccessViolationException(如何处理家庭矛盾)
- .NET 4.0 – AccessViolationException和WndProc
- .net – AForge.Video.FFMPEG.dll中发生AccessViolationException
- .net 访问远程的MSSQL报System.AccessViolationException错误的解决方法
- access violation PHP has encountered an Access Violation
如何处理 AccessViolationException(如何处理家庭矛盾)
我在我的 .net 应用程序中使用 COM 对象
(MODI)。我正在调用的方法抛出一个System.AccessViolationException
,它被 Visual Studio
截获。奇怪的是我已经将我的调用包装在一个 try catch
中,它具有处理程序AccessViolationException
和COMException
其他所有内容,但是当 Visual Studio
(2010) 拦截 时AccessViolationException
,调试器会在方法调用 (doc.OCR)
上中断,如果我单步执行,它会继续到下一行,而不是进入 catch 块。此外,如果我在 Visual Studio 之外运行它,我的应用程序会崩溃。如何处理在
COM 对象中引发的这个异常?
MODI.Document doc = new MODI.Document();
try
{
doc.Create(sFileName);
try
{
doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH,false,false);
sText = doc.Images[0].Layout.Text;
}
catch (System.AccessViolationException ex)
{
//MODI seems to get access violations for some reason,but is still able to return the OCR text.
sText = doc.Images[0].Layout.Text;
}
catch (System.Runtime.InteropServices.COMException ex)
{
//if no text exists,the engine throws an exception.
sText = "";
}
catch
{
sText = "";
}
if (sText != null)
{
sText = sText.Trim();
}
}
finally
{
doc.Close(false);
//Cleanup routine,this is how we are able to delete files used by MODI.
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(doc);
doc = null;
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
}
.NET 4.0 – AccessViolationException和WndProc
我有这个代码片段:
internal class MTool : NativeWindow { private const int WM_LBUTTONDOWN = 0x0201; public event TipDeactivateEventHandler Deactivate; protected override void WndProc(ref System.Windows.Forms.Message m) { if( m.Msg == WM_LBUTTONDOWN ) { if( this.Deactivate != null) { this.Deactivate(); } } base.WndProc(ref m); } }
当我运行我的程序,我得到一个AccessViolationException错误在线base.WndProc(ref m); 我不知道为什么。
显然这是从.NET 2.0移植到4.0,我的理论是,现在可能有一个替代方法用来取代WndProc。 这是吗? 如果不是我为什么得到这个exception?
如何测量用于.NET远程处理的IP端口的进/出字节数?
断开数据Windows程序使用sql Server Compact
为什么相同的代码大小会产生不同大小的exe文件
.NET软件更新pipe理器
function键的标准操作列表
使用Windows传真服务器扩展发送传真 – faxcomexlib
使用Console.WriteLine(C#)或printfn(F#)编写粗体文本?
SendKeys.send被阻止
如何将aspnet_compiler更新到4.6.1?
find“指定的模块找不到”
我通过在方法上面添加这个属性来修复它:
[System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptions]
然后围绕try / catch发生异常的那一行。 我在这里找到了这个信息。
WndProc的文档显示要求完全信任。 你试过了吗? 例如:
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,Name = "FullTrust")] internal class MTool : NativeWindow { [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,Name = "FullTrust")] protected override void WndProc(ref Message m) { //...
我怀疑你的代码中有更大的事情发生。 基于你的片段,我会尝试:
注释掉WndProc覆盖,这还是通过崩溃在其他地方的repro?
使WndProc只调用“base.WndProc(ref msg)”。 你仍然得到同样的错误? 什么是callstack? 在堆栈中还有更多的代码吗?
与原来的代码片段,这是唯一发生在WM_LBUTTONDOWN? 当这抛出异常什么是挂钩到该停用处理程序?
如果这些不切实际的尝试,你可能需要更新片段,以更好地解释你正在尝试做什么。
.net – AForge.Video.FFMPEG.dll中发生AccessViolationException
这不应该发生,因为这是托管代码.但即使我在try catch块中包装,程序也会因为AccessViolationException而崩溃.我已经验证 Image不是null.与VideoFileWriter有关.这种情况发生在应用程序开始到运行30分钟之间.
An unhandled exception of type ‘System.AccessViolationException’
occurred in AForge.Video.FFMPEG.dll
Additional information: Attempted to read or write protected memory.
This is often an indication that other memory is corrupt.
在Visual Studio的输出中,我看到了
Exception thrown at 0x0C4D689F (swscale-2.dll) in test.exe: 0xC0000005: Access violation writing location 0x09F83D80.
Exception thrown: ‘System.AccessViolationException’ in
AForge.Video.FFMPEG.dll
码:
private: System::Void Video_Recorder_Tick(System::Object^ sender,System::Timers::ElapsedEventArgs^ e) { Bitmap^ save = ConvertMatToBitmap(image); //function to convert opencv's Mat to .net's Bitmap if(writer!= nullptr) writer->WriteVideoFrame(save); delete save; } VideoFileWriter ^writer = gcnew VideoFileWriter(); private: Void load_VideoWriter() { writer->Open("C:/video.avi",640,480,10,VideoCodec::Default); }
Visual Studio显示了很少的编写器值
BitRate 400000
Codec Default
FrameRate 10
Height 480
IsOpen true
Width 640
如果有人需要更多信息,请告诉我.
调用堆栈没有多大帮助
令我惊讶的是,互联网上没有人有这个问题!
代码似乎很直接,可能是什么问题?
解决方法
.net 访问远程的MSSQL报System.AccessViolationException错误的解决方法
访问远程的数据库时 报错,本地数据库正常
netsh winsock reset --运行此命令,解决。
netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。 netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,reset是对Winsock的重置操作。当执行完winsock的命令重启计算机后,需要重新配置IP。
access violation PHP has encountered an Access Violation
主要出现在windows主机的服务器上。
在php官方,http://bugs.php.net/
也能够查到两三千页的报告,他们官方也是束手无策,经过了11个小版本后,还是没有彻底解决
http://bugs.php.net/search.php?cmd=display&search_for=PHP+has+encountered+an+Access&x=8&y=9
目前我提供一下这几年我维护经验,我的一些民间解决办法
第一种可能:
去掉 php中 eaccelerator 的扩展
这样做能够解决您的问题,不过可能会加重系统负担
因为eaccelerator主要是为了节省系统资源的东西
具体做法是找到php.ini
如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini
去掉
zend_extensi
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_
eaccelerator.compress="1"
eaccelerator.compress_level="9"
ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
这个bug已经提交给他们了,希望0.9.5能够解决
当然,如果您的机器这个问题不严重,建议还是保留,ea是一块非常优秀的Php缓存+加速软件
配合zo使用,将会降低系统负担 50%-80%左右,提高负载能力、速度和效率 200%左右
第二种可能
session_save_path 需要设定一个实际的物理路径,并且该目录需要everyone的所有权限,类似U主机的0777
第三种可能
c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有权限,类似U主机的0777
第四种可能
您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般
第五种可能
ZendOptimizer和php的搭配不是很好
换个版本试试看
目前比较稳定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2
第六种可能
这种多属于用win2003的用户
他们在应用池中设定了限制
比如多长时间回收,最大使用内存多少等等
这些设置势必造成这个经典的php错误
木头经过数以百计的测试,敢担保问题会出现在这里。
以上就介绍了access violation PHP has encountered an Access Violation,包括了access violation方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
今天关于如何处理 AccessViolationException和如何处理家庭矛盾的分享就到这里,希望大家有所收获,若想了解更多关于.NET 4.0 – AccessViolationException和WndProc、.net – AForge.Video.FFMPEG.dll中发生AccessViolationException、.net 访问远程的MSSQL报System.AccessViolationException错误的解决方法、access violation PHP has encountered an Access Violation等相关知识,可以在本站进行查询。
本文标签: