Итак, у вас есть файл * .svc для размещения вашего сервиса.Можете ли вы щелкнуть правой кнопкой мыши в Visual Studio по этому файлу и сказать «Показать в браузере»?Получаете ли вы что-нибудь там, или оно сразу выдает ошибку ??
Далее: ваша конечная точка службы не имеет атрибута address=""
, который я считаю обязательным - попробуйте добавить это (даже если вы этого не делаетеукажите в нем адрес).
Если вы размещаете хостинг в IIS, адрес вашей службы определяется виртуальным каталогом, в котором находится ваш файл SVC, и самим файлом SVC - вы не сможете определитьопределенный порт или что-нибудь (IIS будет обрабатывать это).
Так что попробуйте подключиться к
http://localhost/Services/Service1.svc
Работает ли это случайно?
Обновление: чтение вашегопостите еще раз повнимательнее, вы указываете специальную фабрику для сервиса - WebServiceHostFactory
.Это WebServiceHostFactory
по умолчанию, предоставляемый .NET, или это что-то, что вы создали сами ??
Дело в том, что .NET WebServiceHostFactory
будет использовать webHttpBinding
для сервисов RESTful WCF - что выигралоне работает с конечной точкой, указывающей basicHttpBinding
, и служба REST не будет иметь никаких метаданных ....
Обновление № 2: пытайтесь использовать только полное имя класса службы,но без спецификации сборки, как в вашем SVC-файле, так и в файле конфигурации.
Поэтому измените это:
Service="MyApp.Core.Service.Service.MyAppService,MyApp.Core.Service"
на следующее:
Service="MyApp.Core.Service.Service.MyAppService"
SVC-файл:
<%@ ServiceHost Language="C#" Debug="true"
Service="MyApp.Core.Service.Service.MyAppService" %>
Файл конфигурации:
<services>
<service name="MyApp.Core.Service.Service.MyAppService"
behaviorConfiguration="MainServiceBehavior">
<endpoint name="newEndpoing"
binding="basicHttpBinding" bindingConfiguration=""
contract="MyApp.Core.Service.IMyAppService" />
</service>
</services>