Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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# C运行WPF时出现问题_C#_Visual Studio 2010_Code Access Security_Securityexception - Fatal编程技术网

C# C运行WPF时出现问题

C# C运行WPF时出现问题,c#,visual-studio-2010,code-access-security,securityexception,C#,Visual Studio 2010,Code Access Security,Securityexception,在使用Visual Studio 2010的WPF应用程序中存在一些问题,使用C构建。此时出现的错误是: 用户代码未处理SecurityException 下面是我单击一个按钮时的代码,它检查文本文件的大小,如果它有音量或没有音量,则检查名为“ButtonToday”的按钮的背景颜色 private void Button_Click(object sender, RoutedEventArgs e) { //Gets current date and puts it into stri

在使用Visual Studio 2010的WPF应用程序中存在一些问题,使用C构建。此时出现的错误是:

用户代码未处理SecurityException

下面是我单击一个按钮时的代码,它检查文本文件的大小,如果它有音量或没有音量,则检查名为“ButtonToday”的按钮的背景颜色

private void Button_Click(object sender, RoutedEventArgs e)
{
    //Gets current date and puts it into string.
    string today = DateTime.Now.ToString("yyyy.MM.dd");
    string yesterday = DateTime.Now.AddDays(-1).ToString("yyyy.MM.dd");

    TextBoxToday.Text = "" + today;
    TextBoxYesterday.Text = "" + yesterday;
    FileInfo f = new FileInfo("D:\\Client1\\2011.02.14.log");
    {
        if (f.Length > 0)
            ButtonToday.Background = Brushes.Green;
        else
            ButtonToday.Background = Brushes.Red;
    }
}

谢谢你的帮助。我是n00b。

您或您的应用程序似乎没有打开该文件的适当权限。检查并确保您自己可以通过文件系统访问该文件,听起来您可能无法访问

[编辑]您确实有权读取该文件,然后?古怪的当然可以尝试下面的方法,直到从抛出的异常中获得更多细节,您才知道到底发生了什么。[/edit]

试试这个:

private void Button_Click(object sender, RoutedEventArgs e)
{
    //Gets current date and puts it into string.
    string today = DateTime.Now.ToString("yyyy.MM.dd");
    string yesterday = DateTime.Now.AddDays(-1).ToString("yyyy.MM.dd");
    TextBoxToday.Text = "" + today;
    TextBoxYesterday.Text = "" + yesterday;

     try
     {
         FileInfo f = new FileInfo("D:\\Client1\\2011.02.14.log");
         {
             if (f.Length > 0)
                 ButtonToday.Background = Brushes.Green;
             else
                 ButtonToday.Background = Brushes.Red;
         }
     }
     catch ( SecurityException ex )
     {
         ex.Message;
     }
}

在ex.消息上放置断点;行,然后在调试模式下运行程序。将鼠标悬停在变量ex上,当您看到它并读取错误消息时,应该会提供有关发生了什么的更多信息。希望这有帮助

注意:如果您可以通过windows资源管理器查看该文件,则可能是管理权限问题

尝试以管理员身份运行VisualStudio,右键单击其图标,然后选择“以管理员身份运行”,看看是否有帮助


或者,您可以在windows资源管理器中选择该文件夹,并授予用户组读取该文件夹的权限

运行应用程序的用户帐户是否有权访问D:\\Client1\\2011.02.14.log?如果您发布堆栈跟踪和异常源,这将非常有用。使用@DashRantic显示的try..catch块。我从下面的建议中得到的错误是:失败的应用程序是:Demand。第一个失败的权限类型是:System.Security.Permissions.FileIOPermission。失败程序集的区域是:MyComputer“SecurityException”需要的命名空间是什么?我相信命名空间是System.Security,或者尝试System.Security.SecurityException;我得到的错误大致在结尾说:>第一个失败的权限类型是System.Security.Permissions.FileIOPermission失败的程序集区域是MyComputer这有什么意义吗?您的应用程序无法读取指向它的文件。我假设你要检查的文件和你运行的应用程序都在同一台本地计算机上?如果是这样,请仔细检查您的用户帐户对程序试图访问的文件的权限。您可能能够打开该文件,因为您是以管理员身份运行的,但是如果Visual Studio未以管理员模式运行,它将无法访问该文件。因此,请尝试在管理员模式下运行Visual Studio,或者为您的用户帐户授予您尝试访问的文件的完全读取权限。