Я пытаюсь заставить мой файл SVC работать под IIS. В моем проекте, когда я нажимаю F5, я получаю работу SVC. Так что я знаю, что все в порядке, верно? За исключением IIS.
Я работаю на компьютере с Windows XP Pro, и в IIS я добавил виртуальный каталог.
Вот мой код:
IcarePlanActions (проект: A)
namespace WcfServiceLibrary
{
[ServiceContract]
public interface ICarePlanActions
{
[OperationContract]
List<string> GetAllClients();
}
}
Клиент: (проект: A)
namespace WcfServiceLibrary
{
public class Client : ICarePlanActions
{
public List<string> GetAllClients()
{
List<string> clients = new List<string>();
clients.Add("Hendrik de Jong");
clients.Add("Miep de Berg");
clients.Add("Jaap Jongeneel");
clients.Add("Joop Prakman");
clients.Add("Pieter Schaakman");
return clients;
}
}
}
Web.config (проект: B)
<configuration>
<system.serviceModel>
<services>
<service behaviorConfiguration="CarePlanService.Service1Behavior"
name="WcfServiceLibrary.Client">
<endpoint address="" binding="wsHttpBinding" contract="WcfServiceLibrary.ICarePlanActions">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CarePlanService.Service1Behavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
CarePlan.svc
<%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceLibrary.Client" %>
Когда я запускаю этот сервис (который находится на IIS) с wfctestclient, я получаю эту ошибку
Ошибка: невозможно получить метаданные из
http://localhost/CarePlanService/CarePlan.svc
Если это Windows (R) Communication
Фонд обслуживания, к которому у вас есть
доступ, пожалуйста, проверьте, что у вас есть
включена публикация метаданных на
указанный адрес.
Что я делаю не так?
РЕШЕНИЕ
Служба IIS не работает. Сначала я вручную создал виртуальный каталог и указал на директорию, где расположен svc. Это не сработало. Я не знаю почему.
Затем я перешел в Visual Studio и изменил настройки сервера (щелкните правой кнопкой мыши на проекте, свойствах, вкладке Web, нажмите Use local IIS Web Server
и нажмите Create Virtual Directory
. Когда я это сделал, он работал в IIS с кодом выше.