سؤال

واحتياجاتي WindowsForms التطبيق للوصول إلى الإنترنت، ولكن عندما أحاول فتح WebRequest تعطل التطبيق. لقد لاحظت عند تشغيل التطبيق من مجلد بسيط (المستندات على سبيل المثال) كان يعمل، ولكن إذا قمت بتشغيل من مجلد "ملفات البرامج" لا. وأنا أعلم أن المشكلة تكمن في أذونات UAC، لكنني لا أفهم لماذا لا أستطيع فتح WebRequest في تطبيق قيد التشغيل من "ملفات البرنامج".

وليس هناك أي وسيلة لفتح WebResquest من "ملفات برنامج" بدون إذن الارتفاع UAC (باستخدام الظاهر)؟

هل كانت مفيدة؟

المحلول

هل تحاول إنقاذ أي شيء إلى مجلد محلي حيث التطبيق قيد التشغيل؟

إذا التطبيق الخاص بك يعمل من مجلد ضمن ملفات البرنامج ومحاولة الكتابة إلى الدليل الذي يقع عليه، التي قد تفشل. المجلد Program Files هي واحدة من الأماكن مطلوب UAC من أجل كتابة (على ما أظن).

نصائح أخرى

واختبار مع تطبيق سطر الأوامر بسيطة ويبدو للعمل بشكل صحيح. كان يعمل من داخل "ملفات البرامج"، كان UAC النشط، وأنا تشغيل ويندوز فيستا 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));
        }
    }
}

ويمكنك ان تعطي المزيد من التفاصيل عن هذه المشكلة؟ ربما إضافة بعض التعليمات البرمجية المصدر؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top