Ich möchte ASP.NET WebApi in einer SharePoint 2013-Farmlösung verwenden.SharePoint 2013 und ASP.NET WebApi
Ich weiß, dass es nicht out-of-the-Box unterstützt wird, aber ich fand SignalR can be run by means of a simple HttpModule, so dass ich mich fragte, ob ein ähnlicher Ansatz verwendet werden könnte.
Vielen Dank im Voraus, Rich-
UPDATE Juni 2013
Geschaffen arbeiten, um die HTTP-Module in dem genannten Beitrag gezeigt durch Nacharbeiten:
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
Gleiche wie SignalRVirtualPathProvider in der Post gezeigt.
NEUE AUSGABE
Das einzige Problem bei diesem Ansatz ist ScriptResource.axd und WebResource.axd jetzt brechen, wenn SP sie auf einer Seite verweist. Ich habe versucht, eine ignorieren Route hinzuzufügen:
RouteTable.Routes.Add(new Route("{resource}.axd", new StopRoutingHandler()));
Aber ich erhalte immer 401 Unauthorized. Das Entfernen des Moduls löscht den Fehler, also fehlt uns noch ein letztes Puzzleteil.
Ich nehme an, Sie müssen den Virtual Path Provider anpassen, siehe ein Beispiel hier: https://spsignal.codeplex.com/SourceControl/latest#MaxMelcher.SPSignalR/SignalRVirtualPathProvider.cs –
Fein, die VPP-Implementierung, die Sie vorgeschlagen haben, schließt alle ein die fehlenden Fälle und alles funktioniert jetzt. Zuvor, _DirectoryExists_ ergeben verschiedene Arten von Fehlern, wenn _virtualDir.Contains fehlen ("my/api/path") _, von SharePoint JS-Fehler, defekte Suche, etc .. – user2363245
Ich versuche, das gleiche zu tun und ich ' Ich bin fast da, aber ich bekomme einen Fehler, weil es den Controller nicht finden kann. Wenn nur das Webapi-Projekt bereitgestellt wird, funktioniert es einwandfrei, aber in SP bricht es. Hast du irgendwelche Vorschläge? –