Я пишу сервис 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.
Если, однако,Я изменяю атрибут Action [OperationContract] на значение, требуемое в примечаниях, мой сервис тестирования ([OperationContract(Action = "http://localhost/webservices/ProductInformationMessage", ReplyAction = "*")]
) больше не видит функцию.
Я пытался изменить адрес при переходе к «Добавить ссылку на службу, но не повезло. Уверен, я что-то упустил очень аверс!»
Большое спасибо