Почему я получаю сообщение об ошибке «Используемый режим кадрирования .Net не поддерживается» при использовании службы WCF? - PullRequest
3 голосов
/ 28 сентября 2010

Я пытаюсь использовать одну из моих служб WCF, используя привязку net.tcp, и получаю следующую ошибку:

"Используемый режим кадрирования .Net не поддерживается 'net.tcp: // myWCFService: 8050 / MyService'."

Проведенное мною исследование утверждает, что это вызвано неправильным «режимом передачи» в конфигурации привязки, но в моей службе он установлен следующим образом:

transferMode="Streamed"

Я на самом деле перепробовал все (4) опции режима передачи в службе WCF, но безрезультатно. Это недавно использованная служба, использующая инструмент «Добавить ссылку на службу» в VS.NET 2010, поэтому на клиенте нет ничего, что я мог бы манипулировать или изменять конфигурацию, кроме предоставления URL-адреса для использования.

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

У кого-нибудь есть идеи по этому поводу? Спасибо!

Ответы [ 2 ]

10 голосов
/ 28 сентября 2010

Nevermind -> эта ошибка маскировала другую ошибку и отправляла меня по неверному пути. Эта служба WCF размещается в службе Windows, и служба запускается просто отлично. Однако при поглощении была представлена ​​ошибка выше.

Для дальнейшего изучения я решил запустить службу WCF локально из VS.NET, используя инструмент «WCF Test Client», и после проверки мне была выдана ошибка real . У меня был код, который наследовал от класса, который не был DataContract. Решения (2) должны были либо пометить родительский класс как DataContract, либо больше не наследовать от этого родительского класса.

В моем случае наследование не было необходимым и было чем-то грандиозным из ранней разработки. После того, как я удалил наследство, снова развернул, запустил службу и возобновил - все прошло отлично.

Так что, если вы когда-нибудь получите эту ошибку, попробуйте запустить ее сначала в VS.NET, используя инструмент клиента тестирования WCF, чтобы решить любые проблемы. Если вы по-прежнему обнаруживаете ту же ошибку, которую я совершил только при использовании службы после ее развертывания, вернитесь к моей первоначальной публикации, потому что то, что я пытался исправить, изначально могло бы помочь вам.

Ничего подобного созданию сообщения, на которое нужно давить, чтобы ответить на мой собственный вопрос! ; -)

0 голосов
/ 21 сентября 2015

Я просто хочу внести свой вклад, потому что, если в будущем возникнет эта проблема или кто-то будет бороться с этой проблемой плотины *Приятно иметь более одной опции.

Моя проблема в том, что моей проблемой было имя службы = "" в файле web.config внутри служб.Если я использую сервис с basichttpbinding, у него не будет проблемы ".Net framing mode", но если я перейду на net.tcp, я получу ошибку.

Так что решение в моем случае это внутриservice name = "" вам просто нужно записать пространство имен в класс, который реализует службу, которую вы пытаетесь предоставить через Wcf.

<services>
  <service name="Nodsys.Services.Service">
    <endpoint address="" binding="basicHttpBinding" 
            bindingConfiguration="CustomHttpBindingWithMaxSize"
            name="Basic" contract="Nodsys.Services.IContract">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>

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

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