Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类型初始值设定项异常@Mutex_C#_.net - Fatal编程技术网

C# 类型初始值设定项异常@Mutex

C# 类型初始值设定项异常@Mutex,c#,.net,C#,.net,我正在用C#构建一个windows应用程序。我的program.cs如下所示 static class Program { /// <summary> /// The main entry point for the application. /// </summary> /// static Mutex mutex = new Mutex(true, @"Global\" + Environment.UserName);

我正在用C#构建一个windows应用程序。我的program.cs如下所示

 static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    /// 

    static Mutex mutex = new Mutex(true, @"Global\" + Environment.UserName);

    [STAThread]
    static void Main()
    {
        if (mutex.WaitOne(TimeSpan.Zero, true))
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new AppLogin());

            mutex.ReleaseMutex();
        }
        else
        {
            // send our Win32 message to make the currently running instance
            // jump on top of all the other windows
            MessageBox.Show("only one - 1 instance at a time");
            NativeMethods.PostMessage(
                (IntPtr)NativeMethods.HWND_BROADCAST,
                NativeMethods.WM_SHOWME,
                IntPtr.Zero,
                IntPtr.Zero);
        }


    }
}
静态类程序
{
/// 
///应用程序的主要入口点。
/// 
/// 
静态互斥体互斥体=新互斥体(true,@“Global\”+Environment.UserName);
[状态线程]
静态void Main()
{
if(mutex.WaitOne(TimeSpan.Zero,true))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
运行(新的AppLogin());
mutex.ReleaseMutex();
}
其他的
{
//发送Win32消息以创建当前正在运行的实例
//跳到所有其他窗口的顶部
Show(“一次只能有一个-1个实例”);
NativeMethods.PostMessage(
(IntPtr)NativeMethods.HWND_广播,
NativeMethods.WM_SHOWME,
IntPtr.Zero,
IntPtr.0);
}
}
}

在过去的几个月里,我成功地完成了申请。今天我突然收到一个错误,mscorlib.dll中发生了类型为“System.TypeInitializationException”的未处理异常。我已经尝试去揭穿这一点,但我可以得到任何地方。我在谷歌上搜索了一个异常,它有一个关于静态feild或构造函数的解决方案。现在我有了一个
Mutex
静态字段,因此我注释掉了所有的Mutex代码,只有
Application.Run(new AppLogin())。窗口现在显示出来了,我在窗口上有两个按钮(一个接受按钮和一个取消按钮)。在键盘上按Esc键会触发取消按钮,在我注释掉互斥代码并启动应用程序后,取消按钮一直正常,直到出现此异常为止这会引发mscorlib.dll中发生的“System.Security.SecurityException”异常,附加信息为“System.Security.Permissions.SecurityPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限请求失败。
。我是正在使用的PC上的管理员,Visual Studio以管理员身份运行。我无法理解这一点。

在对我上面的原始帖子发表评论之后,我搜索了解决方案文件,发现一个.manifest文件是由我的一位开发人员添加的


删除.manifest文件可确保不再引发异常。我不确定app.manifest文件是如何干扰执行的。

TypeInitializationException
本身是无用的。您需要查看内部异常。我不清楚你在这里问什么;您是否在提升的上下文中运行此程序?记住,仅仅因为您的用户是管理员,并不意味着您执行的每个进程都有管理员权限。请澄清你的问题。@PeterDuniho我在运行这个程序,就像过去几个月一样。在过去的两天里,我遇到了这个问题——在VS中打开应用程序并启动,它立即给出了这个异常,我搜索了这个异常,发现它与我在上面帖子中列出的URL相似。在Program.cs(如上所示)中注释mutext代码后,应用程序运行并打开Applogin.cs。@PeterDuniho Applogin.cs有两个文本框和两个按钮。我点击任何一个按钮,它会立即抛出如上所示的安全异常(内部异常也会被复制)。我无法理解是什么原因导致了在过去1个月内(应用程序在visual studio中运行良好)没有更改的代码出现这些异常。您的应用程序没有更改,但它所依赖的任何内容都可以通过任何更新进行更改。现在,您必须跟踪实际的错误消息,或者找出哪些更新影响了系统。