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.
Konfigurace koncového bodu služby WCF tak, aby byl interoperabilní s klienty webové služby ASP.NET:
Jako typ vazby pro koncový bod služby použijte typ System.ServiceModel.BasicHttpBinding.
Nepoužívejte ve vašem koncovém bodu služby funkce zpětného volání, funkce kontraktu relace ani chování transakcí.
Volitelně můžete u vazby povolit podporu ověřování klientů na úrovni protokolu HTTPS a přenosu.
Následující funkce třídy BasicHttpBinding vyžadují funkce nad rámec základního profilu WS-I 1.1:
Mechanismus optimalizace přenosu zpráv (MTOM) kódování zpráv řízené touto vlastností BasicHttpBinding.MessageEncoding. Tuto vlastnost ponechte ve své výchozí hodnotě, což je WSMessageEncoding.Text, aby se nepoužil MTOM.
Zabezpečení zpráv řízené hodnotou BasicHttpBinding.Security poskytuje WS-Security podporu odpovídající WS-I profilu základního zabezpečení 1.0. Ponechte tuto vlastnost ve své výchozí hodnotě, což je SecurityMode.Transport, aby se nepoužívala WS-Security.
Pokud chcete zpřístupnit metadata služby WCF pro ASP.NET, použijte nástroje pro generování klienta webové služby: nástroj pro Web Services Description Language (Wsdl.exe), nástroj pro zjišťování webových služeb (Disco.exe)a funkci Přidat webový odkaz v sadě Visual Studio. Povolte publikování metadat. Další informace najdete v tématu koncové body metadat publikování.
Příklad
Popis
Následující příklad kódu ukazuje, jak přidat koncový bod WCF, který je kompatibilní s klienty webové služby ASP.NET v kódu a případně v konfiguračním souboru.
Code
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é
- interoperabilita s ASP.NET webovými službami