C# WPF应用程序在我的机器上运行,但没有其他人 问题

C# WPF应用程序在我的机器上运行,但没有其他人 问题,c#,wpf,security,registry,C#,Wpf,Security,Registry,这个问题刚刚开始发生,但它会阻止其他人安装和运行应用程序 我可以在我的VS2015上运行应用程序,也可以在我的机器上安装应用程序并运行它。当另一个用户安装应用程序时,不会加载任何内容,他们会得到一个事件日志: Fault bucket 129060628035, type 5 Event Name: CLR20r3 Response: Not available Cab Id: 0 Problem signature: P1: Podia2016.exe P2: 1.0.0.0 P3: 56f

这个问题刚刚开始发生,但它会阻止其他人安装和运行应用程序

我可以在我的VS2015上运行应用程序,也可以在我的机器上安装应用程序并运行它。当另一个用户安装应用程序时,不会加载任何内容,他们会得到一个事件日志:

Fault bucket 129060628035, type 5
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: Podia2016.exe
P2: 1.0.0.0
P3: 56fe6f19
P4: System
P5: 4.6.1038.0
P6: 5615c2d1
P7: 2d06
P8: 11b
P9: System.Security.Security
P10: 
最近,该应用程序在安装时收到通知,可能是一个有害的程序,我不得不允许它。正如我所说,这只是最近才发生的事情,它引发了各种各样的问题

代码
我能想到的唯一可能导致这种情况的原因是我必须读写用户注册表(写入):

我还阅读了注册表:

RegistryKey key = Registry.CurrentUser.OpenSubKey("Software", RegistryKeyPermissionCheck.ReadSubTree, System.Security.AccessControl.RegistryRights.ReadKey);
key = key.OpenSubKey("Podia2016", RegistryKeyPermissionCheck.ReadSubTree, System.Security.AccessControl.RegistryRights.ReadKey);
key = key.OpenSubKey("v1", RegistryKeyPermissionCheck.ReadSubTree, System.Security.AccessControl.RegistryRights.ReadKey);
我真的不知道如何才能真正找出我的申请有什么问题。任何帮助或想法都会很好

编辑:

我刚刚注释掉了登录页面上的所有内容,该页面显示成功,使我相信要么应用程序没有写入事件日志的权限,要么它无法从注册表读取/写入,要么它确实有创建文件的权限


如果我以管理员身份运行我的应用程序,这没有帮助。

您可以在MainWindow.cs文件中添加一个异常处理程序,并检查得到的异常对象

public MainWindow()
{
    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
    Windows.Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
}


void Current_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
}

void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
}

您可以在MainWindow.cs文件中添加异常处理程序,并检查获得的异常对象

public MainWindow()
{
    AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
    Windows.Application.Current.DispatcherUnhandledException += Current_DispatcherUnhandledException;
}


void Current_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
}

void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
}

看看这个,这是@GordonAllocman的文档,所以我的是一个安全例外,但为什么呢?因为我在写事件日志?事件日志并不酷。您必须从添加到应用程序开始。然后您将知道问题发生的确切位置(假设您提供了pdb文件)@BenClarke每次调用OpenSubKey都可能引发SecurityException@GordonAllocman问题是,如果OpenSubKey导致了页面加载的问题,则会出现错误,因为OpenSubKey不会立即加载。请检查此项,这是@GordonAllocman的文档,因此我的是一个安全异常,但为什么?因为我在写事件日志?事件日志并不酷。您必须从添加到应用程序开始。然后,您将知道问题发生的确切位置(假设您提供了pdb文件)。@BenClarke每次调用OpenSubKey都可能引发SecurityException@GordonAllocman问题是,如果OpenSubKey导致了页面加载的问题,则会出现错误,因为OpenSubKey不会立即加载。