2013-05-08 11 views
6

मैं SharePoint 2013 खेत समाधान के अंदर ASP.NET WebAPI उपयोग करना चाहते हैं।SharePoint 2013 और ASP.NET WebAPI

मुझे पता है कि यह बॉक्स के बाहर समर्थित नहीं है, लेकिन मुझे SignalR can be run by means of a simple HttpModule मिला, इसलिए मैं सोच रहा था कि एक समान ऐप का उपयोग किया जा सकता है या नहीं।

अग्रिम धन्यवाद, रिच

अद्यतन जून 2013

निर्मित यह उल्लेख पोस्ट में दिखाया गया HTTP मॉड्यूल दोबारा काम से काम कर रहे:

config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "kms2013/api/{controller}/{action}", 
       defaults: new { } 
      ); 
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 
config.Services.Replace(typeof(IAssembliesResolver), new SPAssemblyResolver()); 

HostingEnvironment.RegisterVirtualPathProvider(new WebAPIVirtualPathProvider()); 

SPAssemblyResolver

public class SPAssemblyResolver : IAssembliesResolver 
{ 
    public ICollection<Assembly> GetAssemblies() 
    { 
     return new List<Assembly> { Assembly.GetExecutingAssembly() }; 
    } 
} 

WebAPIVirtualPathProvider

पोस्ट में दिखाया गया SignalRVirtualPathProvider के रूप में एक ही।

NEW ISSUE

इस दृष्टिकोण के साथ समस्या सिर्फ ScriptResource.axd और है WebResource.axd अब तोड़ने जब सपा उन्हें एक पेज में संदर्भ देता है। मैं एक उपेक्षा मार्ग जोड़ने की कोशिश की:

RouteTable.Routes.Add(new Route("{resource}.axd", new StopRoutingHandler())); 

लेकिन मैं 401 अनधिकृत जा रहे हैं। मॉड्यूल को हटाने से त्रुटि साफ़ हो जाती है, इसलिए मुझे लगता है कि हम अभी भी पहेली के आखिरी टुकड़े की कमी कर रहे हैं।

+0

मुझे लगता है कि आपको वर्चुअल पथ प्रदाता को समायोजित करना है, यहां एक उदाहरण देखें: https://spsignalr.codeplex.com/SourceControl/latest#MaxMelcher.SPSignalR/SignalRVirtualPathProvider.cs –

+1

ठीक है, वीपीपी कार्यान्वयन आपने सुझाव दिया है कि सभी जाल गायब मामले और सबकुछ अब काम कर रहा है। पहले, _DirectoryExists_ _virtualDir.Contains ("my/api/path") _ की कमी करते समय विभिन्न प्रकार की त्रुटियां उत्पन्न करता है, SharePoint JS त्रुटियों, टूटी हुई खोज आदि से लेकर .. – user2363245

+0

मैं ऐसा करने की कोशिश कर रहा हूं और मैं ' मैं लगभग वहां हूं, लेकिन मुझे एक त्रुटि मिलती है क्योंकि यह नियंत्रक नहीं ढूंढ सकता है। केवल वेबपी परियोजना को तैनात करना यह ठीक काम करता है, लेकिन एसपी के अंदर यह टूट जाता है। क्या आपके पास कोई सुझाव है? –

उत्तर

1

हाँ, एक ही दृष्टिकोण काम करना चाहिए।

एक वेब API प्रोजेक्ट बनाएं और एप्लिकेशन init हिस्सा जाँच - तो मेरे ब्लॉग पोस्ट आप पहले से ही संदर्भित का पालन करें।

Btw: sharepoint.stackexchange.com पर पूछें - हो सकता है कोई एक बेहतर समाधान है।

+0

अंत समय इसे आजमाइए पर पहुंचे, और वास्तव में कुछ परिणाम प्राप्त हुए थे। मॉड्यूल ऑफ -> 404 नहीं मिला; मॉड्यूल चालू -> 401 अनधिकृत। अभी भी आश्चर्यचकित होना है, लेकिन ऐसा लगता है कि हमें WebApi – user2363245

+0

के साथ SharePoint सुरक्षा सेट अप करने की आवश्यकता है, संदेह है, सटीक त्रुटि कोड के लिए iIS लॉग की जांच करें, उदाहरण के लिए 401.1 –

+1

ठीक है, इसे काम कर रहा है :-) मैं एक स्पष्टीकरण ASAP पोस्ट करूंगा। धन्यवाद बीटीडब्ल्यू! – user2363245

संबंधित मुद्दे