SharePoint-VirtualPathProvider:在FeatureReceiver中注册



我正在尝试为SharePoint 2010/2013(服务器和基础)实现VirtualPathProvider。到目前为止,我已经实现了System.Web.Hosting.VirtualPathProviderSystem.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.

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

我已经在网上搜索了教程或例子,但没有找到合适的。任何关于如何为SharePoint开发VirtualPathProvider的提示都将不胜感激!提前谢谢。

--

Robert Vogel

您需要编写一个IHttpModule实现来注册您的虚拟路径提供程序ones。也许这个链接可以帮助你:SharePoint 2007作为WCF主机-步骤#4,编写一个虚拟路径提供程序

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

相关内容

  • 没有找到相关文章

最新更新