WCF Action attribute.change приводит к тому, что Клиент не может видеть функцию при обновлении ссылки на службу - PullRequest
0 голосов
/ 13 февраля 2019

Я пишу сервис WCF для получения данных от клиента.Мы не контролируем клиента, на самом деле я не думаю, что наш клиент имеет источник.Предыдущий разработчик заметил, что должен быть указан атрибут OperationContract [Action = ..].

Я также создаю тестовый клиент для отправки ложных данных, чтобы проверить, правильно ли я их обрабатываю.Я использую базовый адрес (http://localhost:9000/SKUChange/), указанный в app.config моего сервиса, чтобы добавить ссылку на сервис к тестовому клиенту.

      <services>
        <service name="ME_BAT_ClassLib.MessageReceiverService">
            <endpoint address="" binding="basicHttpBinding" contract="TNTLS_MessageProcessorSoap">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
                <baseAddresses>
                    <add baseAddress="http://localhost:9000/SKUChange/" />
                </baseAddresses>
            </host>
        </service>
    </services>

Если я оставлю [OperationContract] с атрибутами по умолчанию.

    [OperationContract]
    string ProductInformationMessage(string parTNTProductInformation);

Когда я обновляю ссылку на сервис в моем тестовом клиенте, я вижу свою функцию ProductInformationMessage.

Default Attributes

Если, однако,Я изменяю атрибут Action [OperationContract] на значение, требуемое в примечаниях, мой сервис тестирования ([OperationContract(Action = "http://localhost/webservices/ProductInformationMessage", ReplyAction = "*")]) больше не видит функцию.

Action Attribute specified

Я пытался изменить адрес при переходе к «Добавить ссылку на службу, но не повезло. Уверен, я что-то упустил очень аверс!»

Большое спасибо

1 Ответ

0 голосов
/ 14 февраля 2019

Ваше ReplyAction не должно быть '*', иначе wcf не будет публиковать метаданные об операции.Обычно ответным действием должно быть Action + «Response», поэтому, пожалуйста, измените его на http://localhost/webservices/ProductInformationMessageResponse,, тогда вы должны увидеть метод

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