Ich versuche, einen wcf-Dienst innerhalb eines c# mvc-Webprojekts zu erstellen. Ich habe ein neues Element vom Typ "WCF Service" hinzugefügt und eine Testmethode in der bereitgestellten Schnittstelle hinzugefügt:
[ServiceContract]
public interface ITest
{
[OperationContract]
void DoWork();
bool testWorking();
}
Und der angebotene Service:
public class Test : ITest
{
public void DoWork()
{
}
public bool testWorking()
{
return true;
}
}
Dann bin ich zur Datei web.config übergegangen und habe dem Tag system.ServiceModel Folgendes hinzugefügt:
<services>
<service name="Test" behaviorConfiguration="MyServiceTypeBehaviors">
<endpoint address="" binding="wsHttpBinding" contract="ITest">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
So wie ich es verstehe, sollte ich jetzt in der Lage sein, dies in einem Browser anzuzeigen und eine Testmeldung zu erhalten, die mir mitteilt, dass es an der Zeit ist, einen Client zur Nutzung dieses Dienstes zu implementieren. Was jedoch tatsächlich passiert, ist, dass mein Browser die .svc-Datei herunterlädt!
Zwei Fragen:
1) Was zum Teufel mache ich falsch? Warum erhalte ich nicht die erwartete Meldung?
2) Gibt es eine Möglichkeit, das WCF-Testtool automatisch zu starten, damit es auf diesem Dienst läuft? Die einzigen Richtlinien, die ich finden kann, sind für den Start aus einem WCF-Projekt.
Aktualisierung: (Inhalt der svc-Datei - aus dem Kommentar entnommen)
<%@ ServiceHost Language="C#" Debug="true"
Service="myemployersaddress.com.Test" CodeBehind="Test.svc.cs" %>