2010-12-15 2 views
0

У меня есть проект приложения с консолью C#, в котором есть Program.cs (который содержит основной метод), основной метод просто вызывает метод веб-службы и отображает строку на консоли.Справочная проблема WCF для производства в консольном приложении

Ссылка на службу добавляется в проект, кликнув правой кнопкой мыши и добавив ссылку на нее.

  • Когда консольное приложение выполняется в режиме отладки с визуальной студии, оно работает как ожидалось.

  • , когда консольное приложение выполняется из .exe, найденного в/bin/debug, работает как и ожидалось.

пока все хорошо.

ПРОБЛЕМА:

, когда проект будет скопирован в систему (можно назвать его производственной среде), где на самом деле будет выполняться этот .exe, она не в точной линии, где я создать прокси-сервер службы объект. строка в Program.cs:

ProjectName.ServiceReference.ServiceClient service = new ProjectName.ServiceReference.ServiceClient();

Я знаю, что здесь не удается, потому что у меня есть консоль. Writeline («some line»); до и после указанной выше строки. Я вижу Console.Writeline, которая находится перед прокси-строкой, и вскоре после этого она сбой ...

Я думаю, это связано с тем, что ссылочные пути, ссылающиеся на службу, есть ли что-то, что я могу сделать, чтобы изменить пути, или подтвердить, что это проблема пути как подозреваемая ... ??

любая идея, что происходит неправильно .. ???

+0

Это не «просто терпит неудачу». Было исключение. Какое исключение было брошено? Если есть сомнения, окружите свой код блоком try/catch и выполните Console.WriteLine (ex.ToString()) в исключении. – 2010-12-15 19:49:09

+0

k, просто мин, позвольте мне сделать это ... – user402186 2010-12-15 19:56:19

ответ

0

Проверить эту ссылку: http://blog.davidsandor.com/post/Workaround-The-configuration-for-the-servicee280a6Unrecognized-element-e28098extendedProtectionPolicye28099.aspx

Конфигурация для ведения службы не может быть обновлена ​​в связи к следующему вопросу: Непризнанные элемент «ExtendedProtectionPolicy». (App.config/Web.config)

Там, кажется, не будет по-настоящему понятным причинам, почему это происходит однако, как представляется, связаны с Windows 7. Я не уверен, если .NET Framework, которая поставляется с Win7 имеет несколько разных настроек или шаблон для файлов политики конфигурации WCF, но он, похоже, является виновником . Возможно, файлы machine.config отличаются от Win 7 и . Инструменты настройки WCF используют machine.config как своего рода шаблон политики .

Исправление является раздражающим (потому что каждый раз, когда вы строите свое решение на Windows 7, а затем перестраиваете на Vista, вам придется переделать это).

Удалить строку:

<extendedProtectionPolicy policyEnforcement="Never" />

как из вашего/файла Web.config приложения на клиенте и на файле Web.config в сервера WCF.

Смежные вопросы