Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete nakonfigurovat koncový bod služby WCF (Windows Communication Foundation) tak, aby byl interoperabilní s klienty webové služby ASP.NET, použijte System.ServiceModel.BasicHttpBinding typ vazby pro koncový bod služby.
Volitelně můžete u vazby povolit podporu ověřování klientů na úrovni protokolu HTTPS a přenosu. ASP.NET klienti webové služby nepodporují kódování zpráv MTOM, takže vlastnost BasicHttpBinding.MessageEncoding by měla být ponechána jako výchozí hodnota, což je WSMessageEncoding.Text. ASP.NET klienti webové služby nepodporují zabezpečení WS-Security, takže BasicHttpBinding.Security by měla být nastavena na Transport.
Chcete-li zpřístupnit metadata služby WCF pro nástroje ASP.NET pro generování proxy webových služeb (tj. nástroj Web Services Description Language Tool (Wsdl.exe), nástroj zjišťování webových služeb (Disco.exe)a funkci Přidat webovou referenci ve Visual Studio), měli byste zveřejnit koncový bod metadat HTTP/GET.
Přidání koncového bodu v kódu
Vytvoření nové instance BasicHttpBinding
Nastavením režimu zabezpečení na Transportmůžete volitelně povolit zabezpečení přenosu pro vazbu tohoto koncového bodu služby. Podrobnosti viz bezpečnost dopravy.
Přidejte do hostitele služby nový koncový bod aplikace pomocí instance vazby, kterou jste právě vytvořili. Podrobnosti o tom, jak přidat koncový bod služby do kódu, najdete v tématu Postupy: Vytvoření koncového bodu služby v kódu.
Povolte koncový bod metadat HTTP/GET pro vaši službu. Podrobnosti najdete v tématu Jak na to: Publikování metadat pro službu pomocí kódu.
Přidání koncového bodu do konfiguračního souboru
Vytvořte novou konfiguraci vazby BasicHttpBinding. Podrobnosti najdete v tématu Jak na to: Určení vazby služby v konfiguraci.
Volitelně můžete povolit zabezpečení přenosu dat pro tuto konfiguraci vazby koncové služby nastavením režimu zabezpečení vazby na Transport. Podrobnosti najdete v sekci Bezpečnost dopravy.
Nakonfigurujte nový koncový bod aplikace pro vaši službu pomocí konfigurace vazby, kterou jste právě vytvořili. Podrobnosti o tom, jak přidat koncový bod služby do konfiguračního souboru, najdete v tématu Postupy: Vytvoření koncového bodu služby v konfiguraci.
Povolte koncový bod metadat HTTP/GET pro vaši službu. Podrobnosti najdete v tématu Postupy: Publikování metadat služby pomocí konfiguračního souboru.
Příklad
Následující ukázkový kód ukazuje, jak přidat koncový bod WCF, který je kompatibilní s klienty webové služby ASP.NET v kódu a alternativně v konfiguračních souborech.
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
[ServiceContract]
public interface IEcho
{
[OperationContract]
string Echo(string s);
}
public class MyService : IEcho
{
public string Echo(string s)
{
return s;
}
}
class Program
{
static void Main(string[] args)
{
string baseAddress = "http://localhost:8080/wcfselfhost/";
ServiceHost host = new ServiceHost(typeof(MyService), new Uri(baseAddress));
// Create a BasicHttpBinding instance
BasicHttpBinding binding = new BasicHttpBinding();
// Add a service endpoint using the created binding
host.AddServiceEndpoint(typeof(IEcho), binding, "echo1");
host.Open();
Console.WriteLine($"Service listening on {baseAddress} . . .");
Console.ReadLine();
host.Close();
}
}
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Description
<ServiceContract()> _
Public Interface IEcho
<OperationContract()> _
Function Echo(ByVal s As String) As String
End Interface
Public Class MyService
Implements IEcho
Public Function Echo(ByVal s As String) As String Implements IEcho.Echo
Return s
End Function
End Class
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim baseAddress = "http://localhost:8080/wcfselfhost/"
Dim host As New ServiceHost(GetType(MyService), _
New Uri(baseAddress))
' Add a service endpoint using the created binding
With host
.AddServiceEndpoint(GetType(IEcho), _
New BasicHttpBinding(), _
"echo1")
.Open()
Console.WriteLine("Service listening on {0} . . .", _
baseAddress)
Console.ReadLine()
.Close()
End With
End Sub
End Class
<configuration>
<system.serviceModel>
<services>
<service name="MyService" behaviorConfiguration="HttpGetMetadata">
<endpoint address="echo2" contract="IEcho" binding="basicHttpBinding" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="HttpGetMetadata">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Viz také
- Postupy: Vytvoření koncového bodu služby v kódu
- Postupy: Publikování metadat pro službu pomocí kódu
- Postupy: Určení vazby služby v konfiguraci
- Postupy: Vytvoření koncového bodu služby v konfigurace
- Postupy: Publikování metadat pro službu pomocí konfiguračního souboru
- Bezpečnost dopravy
- používání metadat