Я переименовал файл контракта на обслуживание в своей службе WCF, и теперь при попытке добавить или обновить ссылку на службу возникает ошибка:
There was an error downloading 'http://localhost:8733/Design_Time_Addresses/MessengerService/MessengerService/mex/$metadata'. The request failed with HTTP status 400: Bad Request. Metadata contains a reference that cannot be resolved: 'http://localhost:8733/Design_Time_Addresses/MessengerService/MessengerService/mex'. Metadata contains a reference that cannot be resolved: 'http://localhost:8733/Design_Time_Addresses/MessengerService/MessengerService/mex'. If the service is defined in the current solution, try building the solution and adding the service reference again.
Услуга развернута в WcfSvcHost.
Мой App.config
:
<?xml version = "1.0" encoding = "utf-8" ?>
<configuration>
<appSettings>
<add key = "aspnet:UseTaskFriendlySynchronizationContext" value = "true" />
</appSettings>
<system.web>
<compilation debug = "true" />
</system.web>
<system.serviceModel>
<services>
<service name = "MessengerService.ServiceLogic.MessengerService">
<endpoint address = "" binding = "wsDualHttpBinding" contract = "MessengerService.Contracts.ServiceContracts.IMessengerService">
<identity>
<dns value = "localhost" />
</identity>
</endpoint>
<endpoint address = "mex" binding = "mexHttpBinding" contract = "IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress = "http://localhost:8733/Design_Time_Addresses/MessengerService/MessengerService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled = "True" httpsGetEnabled = "True"/>
<serviceDebug includeExceptionDetailInFaults = "False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Как это исправить?
Это невероятно. Итак, если я напишу этот код в контракте обратного вызова:
[OperationContract(IsOneWay = true)]
void MakePulse();
Это нормально. Но если я напишу это:
[OperationContract(IsOneWay = true)]
void Pulse();
Совершенно неверно.
вы меняете что-то другое. это не может быть правдой