Współdzielenie zasobów między źródłami dla c # WCF Restful serwis WWW obsługiwany jako usługa Windows

Mam usługę WCF Restful, którą hostuję jako usługę Windows. Chcę dodać obsługę wielu domen do mojej usługi. Jednak mogę to łatwo zrobić, gdy używam pliku global.asax. Ale chcę gościć moją usługę jako usługę Windows.

Stworzyłem projekt, który obsługuje moją usługę jako usługę Windows. Teraz problem, z którym się borykam, nie jest teraz możliwy. Wypróbowałem wszystkie możliwe rozwiązania, które znalazłem w pliku app.config, ale żaden z nich nie działa. Wypróbowałem rozwiązania na tych linkach:

sztuczki dotnet

enable-cors.org

Próbowałem ustawić nagłówek w kodzie przy użyciu następującej funkcji, wywołując go w każdej metodzie umowy serwisowej.

private static void SetResponseHeader()
{
WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*");
WebOperationContext.Current.OutgoingResponse.Headers.Add("Cache-Control", "no-cache, no-store");
WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Request-Methods", "GET, POST, PUT, DELETE, OPTIONS");
WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Headers", "Content-Type, Accept");
}

Berło:

namespace ReaderService
{
[ServiceContract]
public interface INFCReader
{
    [OperationContract]
    [WebInvoke(UriTemplate = "GetLogin", Method = "POST")]
    GetLoginResults GetLogin(DisplayRequest dispRequest);
}

Tutaj DisplayRequest jest klasą.

Pomóżcie chłopcom. Daj mi znać, jeśli ktoś chce spojrzeć na inny kod.

Wielkie dzięki.

EDYTOWAĆ:::::::

Wielkie dzięki Thomas za odpowiedź. Stworzyłem klasę MessageInspector, która implementuje IDispactchMessageInspector. Mam następujący kod w klasie MessageInspector.

public class MessageInspector : IDispatchMessageInspector
{
    public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
        return null;
    }
}

Błąd, który otrzymuję teraz, to: „Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu”. Błąd znajduje się w tym wierszu powyższego kodu

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

Chcę tylko dodać obsługę CORS do mojej usługi internetowej. Daj mi znać, jeśli robię to poprawnie. LUB czy jest jakiś inny sposób na zrobienie tego samego.

questionAnswers(2)

yourAnswerToTheQuestion