Asp.net web api SharePoint 2013和ASP.NET WebApi

Asp.net web api SharePoint 2013和ASP.NET WebApi,asp.net-web-api,sharepoint-2013,Asp.net Web Api,Sharepoint 2013,我想在SharePoint 2013服务器场解决方案中使用ASP.NET WebApi 我知道这是不支持的开箱即用,但我发现,所以我想知道是否可以使用类似的方法 提前感谢,, 丰富的 2013年6月更新 通过修改上述帖子中所示的HTTP模块使其正常工作: config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "kms2013/api/{controller}/{

我想在SharePoint 2013服务器场解决方案中使用ASP.NET WebApi

我知道这是不支持的开箱即用,但我发现,所以我想知道是否可以使用类似的方法

提前感谢,, 丰富的

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

但我一直在找工作。删除模块会清除错误,因此我想我们仍然缺少最后一块拼图。

是的,同样的方法也应该有效

创建一个web api项目并检查AppInit部分-然后关注您已经引用的我的博客文章


顺便说一句:请访问sharepoint.stackexchange.com-也许有人有更好的解决方案

终于有时间尝试了一下,并实际看到了一些结果。模块关闭->404未找到;模块打开->401未经授权。我仍然想知道为什么,但是看起来我们需要用WebAPI设置SharePoint安全性。如果有疑问,请查看iis日志以了解确切的错误代码,例如401.1Fine,让它工作:-)我将尽快发布解释。谢谢,顺便说一句@MaxMelcher-当您看到这类问题时,会标记它们以引起版主的注意,以便mods可以将它们迁移到SharePoint.StachExchange.Why?这是一个跨技术的问题。它在这里是有效的!我假设您必须调整虚拟路径提供程序,请参见此处的示例:很好,您建议的VPP实现捕获了所有缺失的情况,现在一切正常。以前,DirectoryExists在缺少virtualDir.Contains(“my/api/path”)时会产生各种错误,包括SharePoint JS错误、搜索中断等。我正在尝试做同样的事情,我几乎做到了,但我遇到了一个错误,因为它找不到控制器。仅部署webapi项目可以正常工作,但在SP内部会出现问题。你有什么建议吗?
RouteTable.Routes.Add(new Route("{resource}.axd", new StopRoutingHandler()));