У меня есть приложение WCF, развернутое с помощью clickonce. Он подключается к серверу с помощью протокола HTTPS, и все работает отличноКак я могу использовать раздел system.net моего app.config в частичной среде доверия?
Я использую прокси-сервер по умолчанию, когда это необходимо, благодаря следующему коду:
<configSections>
<sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</sectionGroup>
</configSections>
<system.net>
<defaultProxy useDefaultCredentials="true"/>
</system.net>
В режиме полного доверия, все работает отлично
сейчас , если я настроил параметры безопасности на частичное доверие, он отлично работает, если нет прокси-сервера, но если я попытаюсь запустить свое программное обеспечение в корпоративной среде, прокси-сервер больше не будет автоопределен.
Из моего понимания:
В configSections не разобран больше в частичных целевых средах, если атрибут requirePermission не установлен, как это:
<section requirePermission="false" name="defaultProxy">
Установка этого атрибута кинуть системы. Configuration.ConfigurationException со следующим сообщением об ошибке:
Sec или имя группы 'defaultProxy' уже определено. Обновления к этому могут возникать только на уровне конфигурации , где он определен.
В разделе «DefaultProxy» действительно уже определена в файле machine.config:
<section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
Однако, это, кажется, не будет проблемой, пока requirePermission не установлен. Другими словами, кажется, что сообщение об ошибке должно достаточно прочитать:
раздел или группу имен «DefaultProxy» уже определена с установкой другого requirePermission. Обновления к этому могут возникать только на уровне конфигурации , где он определен.
ли кто-то столкнулся с такой же проблемой? Можно ли использовать прокси-сервер по умолчанию из приложения WCF в режиме частичного доверия? Я также попытался установить прокси программно, без успеха
System.Net.WebProxy proxy = new WebProxy();
proxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = proxy;
useDefaultWebProxy атрибут WSHttpBinding устанавливается прямо с самого начала, но, кажется, не работает, либо в частичной или полной доверия среде без секции «» system.net.defaultProxy правильно определила:
<binding name="WebBinding" useDefaultWebProxy="true">
Я предполагаю, что я мог бы попросить своих клиентов, чтобы обновить свои локальные файлы Machine.config, чтобы добавить нужный DefaultProxy useDefaultCredentials = «истинный», но это, безусловно, не собирается облегчать развертывание.