Я пытаюсь протестировать свой собственный wcf-сервис, используя WCFTestClient.Я получаю сообщение об ошибке, подобное следующему:
Ошибка: невозможно получить метаданные из http://localhost:2303/MyService Если это служба Windows (R) Communication Foundation, к которой у вас есть доступ, убедитесь, что у вас естьвключена публикация метаданных по указанному адресу.Для получения справки о включении публикации метаданных см. Документацию MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata URI ошибки Exchange: http://localhost:2303/MyService Метаданные содержат ссылку, которую невозможно разрешить: 'http://localhost:2303/MyService'. Тип содержимого application / soap + xml;charset = utf-8 не поддерживается службой http://localhost:2303/MyService. Привязки клиента и службы могут не совпадать.Удаленный сервер возвратил ошибку: (415) Невозможно обработать сообщение, потому что тип содержимого 'application / soap + xml;charset = utf-8 'не был ожидаемым типом' text / xml;charset = utf-8 '.. HTTP URI ошибки GET: http://localhost:2303/MyService Произошла ошибка при загрузке' http://localhost:2303/MyService'. Запрос не выполнен с состоянием HTTP 400: неверный запрос.
Мой проектструктура выглядит следующим образом:
- Консольное приложение, которое выступает в качестве хоста
- Сервисный контракт
- Реализация сервиса
Вот моя реализация сервиса иКлассы контрактов, которые находятся в двух отдельных проектах.
namespace MyService
{
public class MyService : IMyService
{
public string GetGreeting(string name)
{
return "Hello " + name;
}
public string GetYelling(string name)
{
return "What the hell " + name + "!!";
}
}
}
namespace MyService
{
[ServiceContract]
public interface IMyService
{
[OperationContract]
string GetGreeting(string name);
[OperationContract]
string GetYelling(string name);
}
}
Это консольное приложение
namespace MyWCFHost
{
class Program
{
static void Main(string[] args)
{
ServiceHost serviceHost = new ServiceHost(typeof(MyService.MyService), new Uri("http://localhost:2303"));
serviceHost.Open();
Console.WriteLine("MyService is running...");
Console.ReadKey();
serviceHost.Close();
}
}
}
Это файл конфигурации
<configuration>
<system.serviceModel>
<services>
<service name ="MyService.MyService" behaviorConfiguration="MyService.MyServiceBehavior">
<endpoint address="http://localhost:2303/MyService" binding="basicHttpBinding" contract="MyService.IMyService"/>
<endpoint address="mex" binding="mexHttpBinding" name="mexpoint" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyService.MyServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Что яне так?
Спасибо за ваше время ...
Редактировать
Служба работает, когда я пытаюсь запустить ее через клиент winforms, поэтому язнаю, что сервис работает.Вопрос в том, как мне подготовить его к тестированию, используя WcfTestClient.