سؤال

كنت أحاول منذ بضعة أيام لاستدعاء خدمة مخصصة WCF من تطبيق SharePoint المستضاف. لقد قرأت جميع المعلومات المتاحة عند المنتديات ولم أتمكن من العثور على حل عمل.

عندما أتصل بخدمة WCF المخصصة من تطبيق وحدة التحكم في اختبار، فإنه يعمل تماما. على الرغم من أنني، عندما أسميها مع تطبيق SharePoint المستضاف، أحصل على خطأ "403 ممنوع". قرأت أن أفعل مع حقيقة أن AppWeb و HostWeb في مجال مختلف.

لذلك حاولت مكتبة JS المجال "عبر المجال"، لكنني لم يكن لدي حظ للحصول على هذا العمل.

قد أفعل شيئا خاطئا، ربما يمكن لبعضكم المساعدة ...

هنا هو الرمز الذي استخدمته في بلدي AP لاستدعاء الخدمة: giveacodicetagpre.

حتى مع مكتبة المجالات المتبادلة، ما زلت أحصل على خطأ 403 المحظور.

حاولت أيضا إضافة حقوق القراءة في تطبيقي إلى مستوى جمع الموقع.

قمت بتحرير Appmanifest.xml لإضافة مدير التطبيق (الذي وجدته على MSDN http://msdn.microsoft.com/en-us/library/fp179927.aspx ) giveacodicetagpre.

كل ذلك لم يعمل حتى الآن. سيتم الترحيب بأي مساعدة.

هل كانت مفيدة؟

المحلول

I have found a work around.

I deployed my custom WCF to IIS instead of deploying it into SharePoint (ISAPI). I had to make the WCF service public (to be able to call it cross-domain) by adding this code into the WCF's web.config:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
        </customHeaders>
   </httpProtocol>
</system.webServer>

I then deployed the WCF to IIS and from there I have been able to call if from a standard Jquery Ajax Call:

$(document).ready(function () {

    $.ajax({
        type: "GET",
        url: "http://services.ca/SQLService/DataService.svc/GetData?query=query",
        dataType: 'json',
        processdata: true,
        success: function (msg) {
            var JSONmsg = JSON.stringify(msg);

            var Response = document.getElementById('ServiceResponse');
            Response.innerText = JSONmsg;


        },
        error: function (data, errorCode, errorMessage) {
            alert('Error: ' + errorMessage);
        }
    });
});

Hope this helps.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top