/ / Как да използвам .Net Remoting чрез уеб прокси сървър? - c #, .net, wcf, прокси, remoting

Как да използвам .Net Remoting чрез уеб прокси сървър? - c #, .net, wcf, прокси, remoting

Приложението, което пиша трябва да използва .Net Remoting (Зная, че WCF е "новото нещо", но за съжаление това не е опция, която ни е достъпна в този момент).

Както и да е, всичко работи добре, ако не се опитамизползвайте приложението чрез прокси сървър. Приложението обаче трябва да може да функционира чрез сървъри за прокси сървър. Настроих HttpChannel и зададох свойствата "proxyName" и "proxyPort" на техните правилни стойности. Това позволява на канала да използва прокси сървъра без проблем.

Имам следните проблеми:

1: Ако прокси сървърът изисква удостоверяване, изглежда, че няма начин да зададете идентификационните данни, които каналът да използва, за да auth с прокси сървъра. Опитах и ​​двете свойства "акредитиви" и свойствата "потребителско име" и "парола", но не изглежда да работи. Така че в крайна сметка се получава случай, при който прокси сървърът изисква удостоверяване и току-що връща грешка при удостоверяване при извикване на отдалечения метод.

2: Не мога да покажа на HttpChannel да използва стандартния уеб прокси за системата. Ако Internet Explorer е конфигуриран да използва прокси сървър, бих могъл просто да използвам WebRequest.GetSystemWebProxy (), за да го получа. Въпреки това, това връща IWebProxy и не мога да извлека домакин и пристанище от това. Ако някой знае как да направи това, бих го оценил много.

Това, което е разочароващо, е, че ако преминетекодът, използващ Visual Studio и изследване на класа HttpChannel, има обект WebProxy. Животът би бил много по-лесен, ако предостави достъп до това!

Така че основно това, което питам, е как го правя на земятада получите HttpChannel правилно да използвате уеб прокси сървър - имайки предвид, че трябва да мога да използвам прокси сървър, който изисква удостоверяване, както и възможността за автоматично откриване на настройките на прокси сървър на Internet Explorer? Има ли по-прост начин за инстанцииране на канала, така че да мога просто да му предам прокси обект като параметър?

Всяка помощ е много ценена!

Отговори:

3 за отговор № 1

Намерих решението на този проблем(за съжаление съм загубил адреса на блога, който ме доведе до това - ако мога да го намеря отново, ще дам дължим кредит) и работи перфектно. За всеки, който се интересува, добавете следния код:

    private static void SetChannelProxy(HttpClientChannel channel, IWebProxy proxy)
{
FieldInfo proxyObjectFieldInfo = typeof(HttpClientChannel).GetField("_proxyObject", BindingFlags.Instance | BindingFlags.NonPublic);

proxyObjectFieldInfo.SetValue(channel, proxy);
}

Най-напред трябва да конфигурирате прокси обекта си, като използвате идентификационните данни, които искате да използвате, и след това да се обадите на този метод с канала, който искате да използвате с прокси сървъра.