2013-05-08 24 views
6

ASP.NET WebApi'yi bir SharePoint 2013 çiftlik çözümünün içinde kullanmak istiyorum.SharePoint 2013 ve ASP.NET WebApi

Kutudan desteklenmediğini biliyorum, ancak SignalR can be run by means of a simple HttpModule'u buldum, dolayısıyla benzer bir uygulamanın kullanılabilir olup olmadığını merak ediyordum. peşin

sayesinde Zengin

GÜNCELLEME Haziran 2013

Yapılan bu sözü sonrası gösterilen HTTP modülü işlemden geçirilerek çalışma:

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() }; 
    } 
} 

sonrası gösterilen SignalRVirtualPathProvider olarak

aynı WebAPIVirtualPathProvider.

bu yaklaşımla tek sorun ScriptResource.axd ve olduğu

YENİ SAYI WebResource.axd SP bir sayfada bunları başvuruda bulunduğunda şimdi bölünürler. Bir görmezden yolu eklemek çalıştı:

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

Ama 401 Yetkisizalıyorum. Modülü kaldırmak hatayı temizler, bu yüzden hala bulmacanın son bir parçasını eksik ediyoruz.

+0

Sanal Yol Sağlayıcısı'nı ayarlamanız gerektiğini varsayalım, şu sayfaya bakın: https://spsignalr.codeplex.com/SourceControl/latest#MaxMelcher.SPSignalR/SignalRVirtualPathProvider.cs –

+1

İyi, önerilen tüm VPP uygulaması Kayıp vakalar ve her şey şimdi çalışıyor. Önceden, _DirectoryExists_, _virtualDir.Contains ("/ api/path") eksik olduğunda SharePoint JS hataları, bozuk arama, vb. Arasında değişen çeşitli hatalar verir. – user2363245

+0

Aynı şeyi yapmaya çalışıyorum ve Neredeyse orada, ama bir hata alıyorum çünkü Denetleyiciyi bulamıyor. Sadece webapi projesini kullanmak iyi çalışıyor, ancak SP'nin içinde kırılıyor. Hiç önerin var mı? –

cevap

1

Evet, aynı yaklaşım işe yaramalı.

Web api projesi oluşturun ve uygulama init bölümünü kontrol edin - daha sonra başvurduğunuz blog yayınımı izleyin.

BTW: sharepoint.stackexchange.com adresinden sorun - belki birinin daha iyi bir çözümü vardır.

+0

Sonunda denemeye vakti geldi ve aslında bazı sonuçlar gördü. Modül KAPALI -> 404 Bulunamadı; Modül AÇIK -> 401 Yetkisiz. Nedenini hala merak etmeliyiz, fakat WebPoint ile birlikte SharePoint güvenliğini kurmamız gerekiyor gibi görünüyor. – user2363245

+0

Şüphe duyarsanız, tam hata kodu için iis günlüğünü kontrol edin, ör., 401.1 –

+1

İyi, işe koyuldum :-) Bir açıklama ASAP yayınlayacağım. Teşekkürler BTW! – user2363245

İlgili konular