WPAD روشن است. چرا نشانی پروکسی WinHTTP خالی است؟
خواندن پیکربندی پروکسی ویندوز و تعیین پروکسی برای یک مقصد دو عملیات جداگانه است. هویت سرویس مرز دیگری اضافه میکند.
تشخیص خودکار پروکسی میتواند فعال باشد در حالی که رشته پروکسی دستی خالی است. WinHttpGetIEProxyConfigForCurrentUser() فیلدهای پیکربندی را برمیگرداند، نه نقطه پایانی نهایی برای هر مقصد.
| فیلد | معنا |
|---|---|
| پروکسی دستی | مقداری که صریحاً پیکربندی شده است |
| نشانی پیکربندی خودکار | محل اسکریپت PAC |
| پرچم تشخیص خودکار | اینکه تشخیص فعال است یا نه |
ساختار خروجی است. تنظیم عضو تشخیص خودکار آن پیش از فراخوانی تابع، تشخیص ویندوز را فعال نمیکند. از فیلدهای بازگشتی برای ساختن درخواست پروکسی خودکار جداگانه با پرچمهای مستند استفاده کنید.
ابتدا تعیین کنید، سپس اعمال کنید
APIهایی مانند WinHttpGetProxyForUrl() نشانی واقعی مقصد را ارزیابی میکنند. همان نشانی را بدهید، نه نشانی دانلود PAC، و نتیجه تعیین را روی درخواست WinHTTP مربوطه اعمال کنید.
نتیجه مستقیم معتبر است. خطاهای دانلود اسکریپت، ارزیابی اسکریپت و اتصال پروکسی در مراحل جداگانه رخ میدهند. کدهای خطا را بررسی کنید و قواعد مالکیت رشتههای بازگشتی را رعایت کنید.
پیکربندی چه کسی؟
«CurrentUser» یعنی زمینه فراخوان. سرویسی بدون جعل هویت مناسب میتواند تنظیمات حساب سرویس خود را بهجای تنظیمات کاربر رومیزی بخواند.
آگاهانه انتخاب کنید که سرویس از تنظیمات مدیریتشده استفاده کند یا از پیکربندی کاربر مجاز پیروی کند، از جمله رفتار زمانی که کاربر تعاملی وجود ندارد. مدیریت توکن و پاکسازی منابع باید از APIهای هویت پشتیبانیشده پیروی کند.
برای عیبیابی، حساب فراخوان، فیلدهای پیکربندی، مقصد، نتیجه تعیین و نخستین خطای اتصال را کنار هم نگه دارید. این نشان میدهد کدام مرحله مقدار خالی یا مسیر ناموفق را تولید کرده است.