我想在SharePoint 2013服务器场解决方案中使用ASP.NET WebApi。SharePoint 2013和ASP.NET WebApi
我知道它并不支持开箱即用,但是我找到了SignalR can be run by means of a simple HttpModule,所以我想知道是否可以使用类似的应用程序。
由于提前, 丰富
UPDATE 2013年6月
制造它通过再加工中所提到的后显示的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。
新发行
这种方法唯一的问题是的ScriptResource.axd和WebResource.axd的 SP时引用它们的页面现在打破。我尝试添加一个忽略路线:
RouteTable.Routes.Add(new Route("{resource}.axd", new StopRoutingHandler()));
但我不断收到401未授权。删除模块清除了错误,所以我想我们仍然缺少最后一块难题。
我假设您必须调整虚拟路径提供程序,请参阅此处的示例:https://spsignalr.codeplex.com/SourceControl/latest#MaxMelcher.SPSignalR/SignalRVirtualPathProvider.cs – 2013-06-27 10:46:39
很好,您建议的VPP实施陷阱失踪案件和一切工作现在。 以前,_DirectoryExists_在缺少_virtualDir.Contains(“my/api/path”)_时产生各种错误,范围从SharePoint JS错误,破碎的搜索等。 – user2363245 2013-07-02 10:07:32
我试图做同样的事情,米几乎在那里,但我得到一个错误,因为它找不到控制器。只部署webapi项目,它工作正常,但在SP内部打破。你有什么建议吗? – 2014-12-15 12:03:34