A. C# .Net Core 报错时,异常信息带有路径。如何编译使其仅显示错误位置而不是显示完整路径
弄一个全局异常,然后自己处理异常
异常信息在 Exception.StackTrace,也就是你截图的那一串字符,替换或删除掉你要隐藏的路径就好
B. “对路径的访问被拒绝.” 是怎么回事
可能是属性不适配或者和你的系统不匹配,具体的解决方法如下,仅供参考,希望对你有帮助,可以找身边计算机专业的同学咨询一下呀,仅供参考:
1.首先,右键点击我么你需要权限的文件夹,点击“属性”选项.
2.在菜单栏出找到“安全”选项,点击“高级”选项.
3.弹出的对话框中点击“所有者”选项卡,然后点击“编辑”选项.
4.在新弹出的对话框中点击下方的“将所有者变更为”,选择我们当前系统登录用户,点击“确定”,返回属性安全标签下。
5.在组或用户名列表中查看自己用户是否添加成功,然后点击“编辑”选项,进入用户编辑对话框。
6.然后在用户列表中把除了我们刚才添加的用户名其余的都删除,问题就解决了。
C. 未能加载的文件或程序集.怎么解决
1,在64位操作系统上使用任何版本的编译引用了仅32位组件的.Net 3.5的项目;
2,使用64位MSBuild编译引用了仅32位组件的项目;
3,使用32位MSBuild编译引用了仅64位组件的项目。
要解决这个问题,可以在解决方案管理器中,将所有的库的目标平台全部设置为 AnyCPU就可以了。
如果需要最终执行平台是X86只需将最终的执行文件目标平台设置为x86:
这样即可正常编译。
程序最终运行的平台,是根据可执行文件的设置来的,因此库中设置为AnyCPU不会影响到最终程序的运行,运行依然是在x86之下。
但是如果引用的DLL有仅32位的,那这种方法就不行了,解决办法http://support.microsoft.com/kb/2028833,详见MSBuild 4.0 or Visual Studio 2010 may fail to compile a 32-bit application targeted for .Net Framework 3.5, 3.0 or 2.0 on x64 machine。
详细解决步骤如下:
1、关闭所有Visual Studio;
2、以管理员的身份打开VS2010的命令提示窗口;
3、更改目录至"<system_drive>:\Program Files (x86)\Microsoft SDKs\Windows\v<x.xx>\bin\”下面;
4、输入该命令corflags /32bit+ ResGen.exe /force,执行;
5、使用记事本打开<project_name>.csproj文件;
6、在PropertyGroup下添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>,保存,关闭退出。
现在在VS2010中重新打开原先的项目,编译通过,可以正确运行了!
步骤做完后就能运行的原因是,此时ResGen就是以32位模式运行了,而不是64位,因此便可以加载标记为仅32位的程序集了。代价是——它就再也无法编译标记为仅64位模式的程序集了。
对于该问题,还有另一个解决办法,打开项目属性页面,选择应用程序选项卡,设置目标框架为.NET Framework 4 。(由于框架限制,这个没测试)
D. java 中怎么获取一份线程 mp 文件
当服务器挂起,崩溃或者性能底下时,就需要抓取服务器的线程堆栈(Thread Dump)用于后续的分析.
Thread mp提供了当前活动的线程的快照.它提供了JVM中所有Java线程的栈跟踪信息
有很多方式可用于获取Thread Dump,一些是操作系统特定的命令.
Windows:
1. 转向服务器的标准输出窗口并按下Control + Break组合键,之后需要将线程堆栈复制到文件中
UNIX/ Linux
首先查找到服务器的进程号(process id),然后获取堆栈.
1. ps –ef| grep java
2. kill -3 <pid>
注意一定要谨慎,一步不慎就可能让服务器进程被杀死!
JVM自带的工具获取线程堆栈:
JDK自带命令行工具获取PID并做ThreadDump:
1. jps
2.jstack <pid>
使用JVisualVM:
Threads标签页 →ThreadDump按钮
WebLogic自带的获取thread mp的工具:
1. webLogic.Admin工具
a.打开命令提示符,通过运行<DOMAIN_HOME>/bin/setDomain.env设置相关类路径
b.执行下面的命令
java weblogic.Admin -url t3://localhost:7001 -username weblogic -password weblogic1 THREAD_DUMP
注意: Thread Dump会打印到标准输出,如nohup日志或者进程窗口.
2.使用 Admin Console
a.登录Admin Console ,点击对应的服务器
b.点击ServeràMonitoringàThreads
c.点击: Dump Thread Stack按钮
3.使用WLST (WebLogic Scripting Tool)
connect(‘weblogic’,'weblogic1’,’t3://localhost:7001’)
cd(‘Servers’)
cd(‘AdminServer’)
threadDump()
disconnect()
exit()
注意:线程堆栈将会保存在运行wlst的当前目录下.
4.使用utils.ThreadDumper
用法:
C:eawlserver_10.3serverlib>java -cp weblogic.jar utils.ThreadDumper
Broadcast Thread mps disabled: must specify weblogic.debug.mpThreadAddr and
weblogic.debug.mpThreadPort
Exception in thread "main" java.lang.IllegalArgumentException: Port out of range
:-1
at java.net.DatagramPacket.setPort(Unknown Source)
at java.net.DatagramPacket.<init>(Unknown Source)
at java.net.DatagramPacket.<init>(Unknown Source)
at utils.ThreadDumper.sendDumpMsg(ThreadDumper.java:124)
at utils.ThreadDumper.main(ThreadDumper.java:145)
5.如果服务器是作为Windows服务的方式运行,请运行下列命令:
WL_HOMEineasvc -mp -svcname:service-name
$JAVA_