WPF应用程序在我的机器上运行,但没人用

时间:2016-04-01 13:09:44

标签: c# wpf security registry

问题

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

我可以在我的VS2015上运行该应用程序,我也可以在我的机器上安装该应用程序并运行它。当另一个使用安装时,应用程序没有任何加载,他们得到一个EventLog:

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", true);

key.CreateSubKey("Podia2016");
key = key.OpenSubKey("Podia2016", true);

key.CreateSubKey("v1");
key = key.OpenSubKey("v1", true);

key.SetValue("URL", serverURL);
key.SetValue("UID", username);
key.SetValue("PWD", password);

我也阅读了注册表:

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);

我真的不知道如何才能真正找出我的应用程序有什么问题。任何帮助或想法都会很棒!

编辑:

我刚刚在我的登录页面上注释掉了所有内容,并且页面显示成功,导致我相信应用程序无法访问Write到EventLog,它无法从注册表读取/写入或者它有权创建文件。

如果我以管理员身份运行我的应用程序,则无效。

1 个答案:

答案 0 :(得分:0)

您可以在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)
{
}