Visual Studio 2010, случайным образом не могущий отлаживать сервис WCF

Я запускаю Visual Studio 2010 на машине Windows 7 x64, и иногда VS дает мне, старое доброе "Удаленная процедура не могло быть отлажено. Это обычно указывает, что отладка не была включена на сервере" ошибку, о которой спрашивает много людей.

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

Я должен упомянуть, что соединяю сервис WCF из приложения WPF. Если я запускаю веб-сайт, сервис является частью, я не получаю диалоговое окно.

Несколько вещей, которые я попробовал, которые не работают:

  • Уничтожение и перезапуск сервера.
  • Компиляция веб-сервера в x86
  • Включение трассировки, но не могло найти проблемы.

Это - просто ошибка в Visual Studio 2010 или является там чем-то, что я пропускаю?

ОБНОВЛЕНИЕ

Я заметил, что это, кажется, происходит, если мои сбои приложения WPF, в то время как сервис WCF инициализируется. Впоследствии, все попытки назвать сервис WCF поднимут "Не могущий отладить" сообщение, пока я не перезапущу VS2010.

11
задан rossisdead 9 July 2010 в 15:19
поделиться

10 ответов

Итак, у меня есть несколько вопросов о вашей службе WCF, которую вы используете. Вы настроили WCF для работы в режиме совместимости с ASP.NET? Режим совместимости с ASP.NET? Возможно, вы подключаетесь к веб-серверу, а не к процессу, на котором размещен WCF. Также можете ли вы заставить других воспроизвести такое поведение? Если это так, я бы отправил электронное письмо одному из менеджеров по продукту Visual Studio, чтобы убедиться, что исправление для этого внесено в SP1.

0
ответ дан 3 December 2019 в 12:28
поделиться

Это долгий путь, но я решил аналогичную проблему, повторно запустив regiis -i для ASP.NET:

x64
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i
x86
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

. Не забудьте после этого выполнить iisreset.

0
ответ дан 3 December 2019 в 12:28
поделиться

Не уверен, что это сработает, но, судя по вашему обновлению, похоже, что процесс не подключен и поэтому вы не можете отлаживать.

Вот теория:

  • При нормальном запуске процесс подключен и все работает нормально.
  • Когда приложение WPF падает, служба WCF запускается, но ни к чему не привязывается
  • Когда вы перезапускаете приложение WPF, оно видит, что приложение WCF запущено, нет необходимости запускать его, поэтому оно не привязывается.

Тогда решением будет попытка прикрепить процесс, содержащий приложение WCF, вручную.

0
ответ дан 3 December 2019 в 12:28
поделиться

Visual Studio не отлаживает все веб-приложения. Только действительные WebServices.

Если это не так, возможно, ошибка в machine.config. Посмотрите.

В любом случае, если вы сделаете все вручную, все должно работать.

Примечание: У меня были некоторые странные проблемы с отладкой, так как я использовал VS2010 beta. После получения лицензий все работает идеально.

0
ответ дан 3 December 2019 в 12:28
поделиться

Вы упомянули, что:

Служба WCF работает на Сайт ASP.Net. Если я запустил ASP.Net сайт для отладки сайта через Visual Studio я не получаю проблемы

Включили ли вы функции активации .NET Framework WCF?

Предполагая, что вы используете Windows Server 2008:

  1. Открыть диспетчер серверов
  2. Открыть функции Нажмите «Добавить компонент»
  3. Разверните .NET Framework 3.5.1 Возможности
  4. Расширение возможностей WCF Выберите механизмы активации HTTP и не HTTP

Без этих функций активации IIS не устанавливает прослушиватель, который знает, как активировать процессы, на которых размещается ваша служба WCF.

Когда вы вручную открываете веб-сайт, вы вручную активируете процессы и, следовательно, должны увидеть, что ваши службы WCF становятся доступными. Но вы также упоминаете, что они «случайным образом» становятся недоступными - вероятно, это происходит, когда процесс хостинга завершается из-за отсутствия активности и не запускается автоматически, когда вы в следующий раз пытаетесь отправить сообщение своим службам.

0
ответ дан 3 December 2019 в 12:28
поделиться

Это не обязательно может быть вариантом, если вы уже развернули службу, но если вы добавите веб-сайт как локальный проект, а не как проект IIS, он будет использовать встроенный отладочный веб-сервер (Cassini), к которому у VS, кажется, меньше проблем с подключением.

1
ответ дан 3 December 2019 в 12:28
поделиться

Посмотрите на утилиту, содержащуюся в папке C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE , под названием vsdiag_regwcf.exe .

Дополнительная информация, которая может решить вашу проблему Отладка служб WCF в Visual Studio 2008

0
ответ дан 3 December 2019 в 12:28
поделиться

В вашей веб-службе, если вы используете статические инициализаторы, может помочь регистрация того, были ли они выполнены успешно или нет. Например (с использованием регистратора log4net , назначенного «Журналу»):

static Foo() {
   try {
      // ... initialization code here
      Log.Info( ... ); // log success
   }
   catch(Exception ex) {
      Log.Fatal(ex.ToString()); // log failure reason
   }
}

Более чем однажды это спасало мою команду.

0
ответ дан 3 December 2019 в 12:28
поделиться

Если приложение WPF скомпилировано в 32-битном режиме или запущено на другом (32-битном компьютере), вы установили для пула приложений сайта IIS, на котором размещена служба WCF, значение «Включить 32-битные приложения» "в правду?

Не уверен, что это необходимо, но вы уже пробовали много других вещей, так что, возможно, стоит попробовать, если он еще не установлен.

0
ответ дан 3 December 2019 в 12:28
поделиться

Хорошо, прежде чем вы попробуете 1000 вещей, обратите внимание, что вы используете VS.NET 2010 и может иметь действительную открытую ошибку. Возможно, вы все делаете правильно, и проблема в продукте. На самом деле, у меня возникла проблема с Microsoft Connect в отношении случайного сбоя среды IDE, когда Blend и .NET открыты для отладки. Я отправил им дамп проблемы в формате .dmp, и они внимательно следят за ней.

Если вы можете воспроизвести сообщение об исключении WCF, возможно, вы захотите открыть элемент с помощью Microsoft Connect для Visual Studio. Ссылка ниже:

Visual Studio и .NET Framework Microsoft Connect: http://connect.microsoft.com/VisualStudio

0
ответ дан 3 December 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: