"WebHttpBinding" in WCF: wie es zu konfigurieren, den richtigen Weg?
Versucht, diesem Beispiel zu Folgen, damit es funktioniert: http://weblogs.asp.net/kiyoshi/archive/2008/10/08/wcf-using-webhttpbinding-for-rest-services.aspx
Hier ist mein App.config
:
<system.serviceModel>
<services>
<!-- The service for the TEST WEB client -->
<service name="MyServer.AAServiceType" behaviorConfiguration="Default">
<endpoint address="testservice"
binding="webHttpBinding" behaviorConfiguration="webBehavior"
contract="MyServer.AAIContractName" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8787/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<!-- TEST WEB BEHAVIOR -->
<behavior name="Default">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
<!-- TEST WEB ENDPOINT -->
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Update: Der service-Vertrag ist:
namespace MyServer
{
[ServiceContract(SessionMode=SessionMode.NotAllowed)]
public interface IContractName
{
[WebGet(UriTemplate = "date/{year}/{month}/{day}", ResponseFormat = WebMessageFormat.Xml)]
[OperationContract]
string GetDate(string day, string month, string year);
}
public class ServiceType : IContractName
{
public string GetDate(string day, string month, string year)
{
return new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day)).ToString("dddd, MMMM dd, yyyy");
}
}
}
Das problem ist, dass wenn ich versuche eine Verbindung zu port 8787 (mit putty
zum Beispiel) ein "Connection refused" Fehler zurückgegeben. Wie Sie sehen können, habe ich auch versucht, die falschen Namen in der Klasse Vertrag und die service-Implementierung und bekam keine Ausnahmen. Was mache ich falsch, bitte?
Können Sie uns zeigen Sie Ihre service-Vertrag?? Was für eine URL-Vorlage, die Sie angeben?
Sicher. Wir bitten Sie sich das update. Auch aufgehört mit der lokal installierten IIS (über den UI-Konsole), um sicherzustellen, dass niemand fängt die HTTP-Anfragen.
Okay, problem gefunden - lieferte die Antwort von meiner eigenen.
Sicher. Wir bitten Sie sich das update. Auch aufgehört mit der lokal installierten IIS (über den UI-Konsole), um sicherzustellen, dass niemand fängt die HTTP-Anfragen.
Okay, problem gefunden - lieferte die Antwort von meiner eigenen.
InformationsquelleAutor BreakPhreak | 2010-09-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie in IIS gehostet wird, oder self-hosting??
Wenn Sie hosting dieses in IIS (mit einem *.svc-Datei), IIS diktiert die Adresse - es wird
Wenn Sie selbst hosten, dann scheint alles OK für mich - in diesem Fall, Ihre Basis-Adresse ins Spiel kommt:
sollte Ihre service-Adresse jetzt.
InformationsquelleAutor marc_s
Es wurde ein Fehler im code, startete der service. Der richtige code lautet:
http://localhost:8787/testservice/date/2010/08/31
funktioniert??endlich, ja 🙂
InformationsquelleAutor BreakPhreak