Мне просто нужно было сделать это - я переопределил JsonEndpointFactory и возился с привязкой там, затем добавил конечную точку, используя новый класс.
namespace Bodge
{
public class JsonPEndpointFactory : JsonEndpointFactory
{
public override IEnumerable<ServiceEndpoint> CreateEndpoints(DomainServiceDescription description, DomainServiceHost serviceHost)
{
IEnumerable<ServiceEndpoint> endPoints = base.CreateEndpoints(description, serviceHost);
foreach (ServiceEndpoint endPoint in endPoints)
{
if (endPoint.Binding is WebHttpBinding)
{
((WebHttpBinding)endPoint.Binding).CrossDomainScriptAccessEnabled = true;
}
}
return endPoints;
}
}
}
<endpoints>
<add name="JSONP" type="Bodge.JsonPEndpointFactory, Bodge, Version=1.0.0.0"/>
</endpoints>
Затем получите доступ к вашему сервису с помощью конечной точки и параметра запроса обратного вызова, например,
http://blah/service.svc/JSONP/GetStuff?callback=callbackname
Надеюсь, это поможет,
Крис.