Предоставляет ли мне маршалинг маршалированного интерфейса маршаллер для прокси или исходного интерфейса?

Вот конкретный пример:

Я создаю интерфейс IWeBrowser2 , вызывая wb.CoCreateInstance (CLSID_InternetExplorer, 0, CLSCTX_SERVER ); . Это дает мне маршалированный интерфейс от моего процесса к любому из запущенных iexplore. Процессы exe содержат эту вкладку браузера в моем потоке A .

Теперь я использую IGlobalInterfaceTable , чтобы получить cookie для этого интерфейса, передать его моему потоку B и запросить оттуда маршалированный интерфейс.

Вопрос: Могу ли я получить прокси-сервер для прокси в моем потоке A или непосредственно для экземпляра в процессе IE?

Мне кажется разумным, что я получу прямой прокси для экземпляра с его собственной ссылкой на него,
однако :

Если я завершу свой поток A, созданный мной файл cookie станет недействительным и я больше не могу получить (и закрыть) указатели интерфейса на созданные мной веб-браузеры. Это не имеет смысла, если в этом потоке нет преобразователя, который уничтожается при выходе из потока.

Изменить: О, оба потока являются STA. Невозможно импортировать следующий ключевой файл: CCC.pfx.
Ключевой файл может быть защищен паролем.

Чтобы исправить это, попробуйте снова импортировать сертификат или вручную установить сертификат в CSP строгого имени со следующим именем контейнера ключей: VS_KEY_C00C673BBB353901

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft .Common.targets (1970):
. Импорт ключевого файла «CCC.pfx» был отменен.


В Visual Studio 2010 все работает нормально. Сборка подписана файлом PFX . Обычно в Visual Studio нам предлагается ввести пароль при первой сборке, но больше никогда ...

Я пробовал запустить:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A 

в качестве других ответов, как предложено в вопросе о переполнении стека Невозможно импортировать keyfile 'blah.pfx' - ошибка 'Ключевой файл может быть защищен паролем' . Я пробовал импортировать в хранилище личных сертификатов, как было предложено в вопросе о переполнении стека . Использование MSBuild для подписи ClickOnce или сборки приводит к ошибке MSB3321 . Но все без толку, все та же ошибка.

Как мне это сделать? Должен ли я каким-то образом добавить сертификат в учетную запись Windows, под которой работает служба сборки, или что-то в этом роде?

В качестве альтернативы, как сделать сборку, выполненную в Team Build, без использования подписи? Я просто хочу проверить его компиляцию и запустить модульные тесты. Для этого мне не нужна подпись.

20
задан Community 23 May 2017 в 11:54
поделиться