powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Не могу сгенерировать код со службы
7 сообщений из 7, страница 1 из 1
Не могу сгенерировать код со службы
    #36942779
FordSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Есть WCF Сервис хостится в сервисах винды с превязкой через net.tcp, все работает норм.

Пытаюсь добавить новый метод заглушка (Добавляемый метод это скопированный метод с того же интерфейса с теми же полями, с теме же параметрами, но без тела функции), объявляю в интерфейсе, реализовываю в классе. После этого хочу сгенерировать клиентский прокси код
, "C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\svcutil.exe" net.tcp://127.0.0.1:8500/MainContract
код гененирует. После добавляю ещё один метод такой же как первой только имя другое, либо добавляю метод с возвращающими данными (IsOneWay = false)

она мне выдаёт что:
_________________________________
Ошибка: Не удается получить метаданные из net.tcp://127.0.0.1:8500/MainContract


Если у вас есть доступ к службе Windows (R) Communication Foundation, убедитесь,
что включена публикация метаданных по указанному адресу. Справочные сведения по
включению публикации метаданных см. в документации MSDN по адресу http://go.mic
rosoft.com/fwlink/?LinkId=65455.


Ошибка службы обмена метаданными WS-Metadata Exchange
Идентификатор URI: net.tcp://127.0.0.1:8500/MainContract

Метаданные содержат неразрешимую ссылку: "net.tcp://127.0.0.1:8500/MainContr
act".

<?xml version="1.0" encoding="utf-16"?><Fault xmlns=" http://www.w3.org/2003/
05/soap-envelope"><Code><Value>Sender</Value><Subc​ode><Value xmlns:a=" http://www
.w3.org/2005/08/addressing">a:ActionNotSupported</​Value></Subcode></Code><Reason
><Text xml:lang="ru-RU">Сообщение с Action " http://schemas.xmlsoap.org/ws/2004/0
9/transfer/Get" не может быть обработано на стороне получателя из-за несоответст
вия ContractFilter на EndpointDispatcher. Возможно, это связано с несоответствие
м контрактов (несогласованность действий на стороне отправителя и получателя) ил
и несоответствием привязка/защита на стороне отправителя и получателя. Убедитес
ь, что отправитель и получатель имеют один и тот же контракт и одинаковые привяз
ки (включая требования к защите, например, Message, Transport или None).</Text><
/Reason></Fault>
_________________________________


гененирую через добавить ссылку на службу выдаёт следующее:
_________________________________
«Ошибка: не удается получить метаданные из http://localhost:8000/somesservice/mex». Превышена квота максимального числа символа в таблице имен (16384) при чтении данных XML. Таблица имен является структурой данных, в которой хранятся строки, обнаруженные при обработке данных XML. Триггером этой квоты могут служить длинные XML-документы с неповторяющимися именами элементов, именами атрибутов и значениями атрибутов. Эту квоту можно увеличить, изменив свойство MaxNameTableCharCount объекта XmlDictionaryReaderQuotas, используемого при создании средства чтения XML.

Эта ошибка может вызываться службой, которая возвращает крупный WSDL-файл на запрос метаданных службы. Проблема состоит в превышении квоты символов для программы svcutil.exe. Это значение задается, чтобы предотвратить атаки типа «отказ в обслуживании». Можно увеличить квоту, указав следующий файл конфигурации для svcutil.
_________________________________

почитал тут поправил конфиг http://msdn.microsoft.com/ru-ru/library/aa347733.aspx,
все равно не хочет генерировать.

У кого какие идеи как это решить??


update
Ещё у меня один большой интерфейс IMainContract (клиент работает через его прокси), который наследует интерфейсы различных сервисов помеченные атрибутами для WCF. Сейчас попробывал закоментировать наследованния IMainContract от других сервисов, и оставил только тот в котором добавлял методы. Все нормально сгенерировалось, видимо есть какие то ограничения на максимальное число методов в одном прокси интерфейсе или что то подобное. Кто что знает ? признавайтесь ;)
...
Рейтинг: 0 / 0
Не могу сгенерировать код со службы
    #36944557
FordSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем, мне так и не удалось сгенерировать прокси использую mex через net.tcp. Сделал так чтобы mex видна была через http, и о чудо код сгенирировался черех http.


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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="ConfigGetWSDLBehavior">
          <serviceMetadata />
        </behavior>

      </serviceBehaviors>
    </behaviors>


    <bindings>
      <netTcpBinding>
        <binding
          name="ConfigTcpBinding"
          maxReceivedMessageSize="2147483646"
          closeTimeout="00:01:00"
          openTimeout="00:01:00"
          receiveTimeout="00:02:00"
          sendTimeout="00:01:00"
          maxConnections="10"
          maxBufferSize="2147483646">

          <readerQuotas
            maxArrayLength="2147483646"
            maxBytesPerRead="2147483646"
            maxDepth="2147483646"
            maxNameTableCharCount="2147483646"
            maxStringContentLength="2147483646"/>

          <reliableSession ordered="false"/>

          <security mode="None">
            <transport clientCredentialType="None"/>
          </security>

        </binding>
      </netTcpBinding>

      <mexTcpBinding>
        <binding
          name="mexTcpBindingWDSLConfiguration"
          openTimeout="00:01:00"
          receiveTimeout="00:02:00"
          sendTimeout="00:01:00"
          closeTimeout="00:01:00"/>
      </mexTcpBinding>

      <customBinding>
        <binding
          name="LicenseServiceBinding"
          openTimeout="00:01:00"
          receiveTimeout="00:02:00"
          sendTimeout="00:01:00"
          closeTimeout="00:01:00">
          <security authenticationMode="UserNameOverTransport">
            <localClientSettings maxClockSkew="00:07:00" />
            <localServiceSettings maxClockSkew="00:07:00" />
          </security>
          <windowsStreamSecurity />

          <textMessageEncoding messageVersion="Soap11">
            <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="2147483646" maxBytesPerRead="4096" maxNameTableCharCount="2147483646"/>
          </textMessageEncoding>

          <tcpTransport maxReceivedMessageSize="2147483646" portSharingEnabled="true" />
        </binding>
      </customBinding>
    </bindings>

    <services>
      <service name="TMServer.MainContract" behaviorConfiguration="ConfigGetWSDLBehavior">
        <endpoint
          address="net.tcp://127.0.0.1:8500/MainContract"
          contract="TMServer.IMainContract"
          binding="netTcpBinding"
          bindingConfiguration="ConfigTcpBinding"/>

        <endpoint
          address="mex"
          binding="mexTcpBinding"
          bindingConfiguration="mexTcpBindingWDSLConfiguration"
          contract="IMetadataExchange" />
      </service>
    </services>
...
Рейтинг: 0 / 0
Не могу сгенерировать код со службы
    #36950612
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите вот это и забудьте про mex/wsdl и прочюю наколенку, написанную студентами, нанятыми M$.

http://bit.ly/d7CQqP
...
Рейтинг: 0 / 0
Не могу сгенерировать код со службы
    #36955371
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верблюд mex/wsdl и прочюю наколенку, написанную студентами, нанятыми M$.

Линух форева!



По сабжу - уберите все, что связано с безопасностью и шифрованием.

Никакой разницы между разными типами транспорта нет, просто в http у вас случайно совпали настройки безопасности (для МЕХ). А в tcp - случайно не совпали.

Для редактирования пользуйтесь инструментом из меню - Tools> WCF .... Editor.
...
Рейтинг: 0 / 0
Не могу сгенерировать код со службы
    #36955413
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129,

там не linux, если что
там о том, как откреститься от глючных WebReferences/mex/wsdl
...
Рейтинг: 0 / 0
Не могу сгенерировать код со службы
    #36955464
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВерблюдD129,

там не linux, если что
там о том, как откреститься от глючных WebReferences/mex/wsdl

А я по тону сообщения подумал, что вы предлагаете крайнюю степень отречения....
А видео мне не посмотреть - у нас перекрыто на работе.

:)

Вообще конечно - классический подход - написать общую дллку, с реализацией всех классов....

Но визарды уж очень затягивают - тяп-ляп - и клиент готов.
...
Рейтинг: 0 / 0
Не могу сгенерировать код со службы
    #36955699
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129Вообще конечно - классический подход - написать общую дллку, с реализацией всех классов....

Там именно об этом. На простом примере HelloWorld! показывается, как написать полноценный сервер / клиент на WCF в пять строчек кода без всяких глючных визардов.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Не могу сгенерировать код со службы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]