2

我正在尝试为 SharePoint 2010/2013(服务器和基础)实现 VirtualPathProvider。到目前为止,我已经实现了和的子System.Web.Hosting.VirtualPathProvider类。System.Web.Hosting.VirtualFileSystem.Web.Hosting.VirtualDirectory

我想使用带有FeatureReceiver类的特性来向 HostingEnvironment 注册新的 VPP。但是由于我已经实施了这条线

HostingEnvironment.RegisterVirtualPathProvider(new MyVPProvider());

进入该FeatureActivated方法,VisualStudio 的调试部署失败:

Error occurred in deployment step 'Activate Features': Operation is not valid due to the current state of the object.

我不知道我做错了什么。也许 aFeatureReceiver是注册 VPP 的错误位置?

我已经在网上搜索了教程或示例,但没有找到合适的。非常感谢任何有关如何为 SharePoint 开发 VirtualPathProvider 的提示!提前致谢。

--

罗伯特·沃格尔

4

1 回答 1

0

您需要编写一个 IHttpModule 实现来注册您的虚拟路径提供程序。也许这个链接可以帮助你:SharePoint 2007 as a WCF host - Step #4, Write a Virtual Path Provider

using System.Web;
public class MyVirtualPathProviderRegisterModule : IHttpModule
{
    static bool _Initialized = false;
    static object _Lock = new object();
    public void Init(HttpApplication app)
    {
        if (!_Initialized)
            lock(_Lock)
                if(!_Initialized)
                {
                    HostingEnvironment.RegisterVirtualPathProvider(new MyVirtualPathProvider());
                    _Initialized = true;
                }
    }
    public void Dispose() {}
}
于 2014-04-07T10:00:24.950 回答