1

我的 WindowsForms 应用程序需要访问 Internet,但是当我尝试打开 WebRequest 时,应用程序崩溃了。我注意到当我从一个简单的文件夹(例如我的文档)运行应用程序时它可以工作,但是如果我从“程序文件”文件夹运行它就不行。我知道问题在于 UAC 权限,但我不明白为什么我无法在从“程序文件”运行的应用程序中打开 WebRequest。

有什么方法可以在没有 UAC 权限提升(使用清单)的情况下从“程序文件”打开 WebResquest?

4

2 回答 2

1

用一个简单的命令行应用程序测试,它似乎工作正常。它从“程序文件”内部运行,UAC 处于活动状态,我正在运行 Vista SP2。

WebRequest req = WebRequest.Create("http://www.google.com");
using(WebResponse resp = req.GetResponse())
{
    using(Stream str = resp.GetResponseStream())
    {
        using(StreamReader sr = new StreamReader(str))
        {
            string data = sr.ReadToEnd();
            Console.WriteLine("SUCCESS: " + data.Length + "bytes downloaded");
            Console.WriteLine("SAMPLE: " + data.Substring(0,100));
        }
    }
}

你能提供更多问题的细节吗?也许发布一些源代码?

于 2009-09-10T19:35:24.723 回答
1

您是否尝试将任何内容保存到运行应用程序的本地文件夹中?

如果您的应用程序从 Program Files 下的文件夹运行,并且您尝试写入它所在的目录,则可能会失败。Program Files 文件夹是需要 UAC 才能编写的地方之一(我认为)。

于 2012-06-18T18:40:29.260 回答