当前位置:  开发笔记 > 编程语言 > 正文

使用来自32位应用程序的SPSite访问64位SharePoint

如何解决《使用来自32位应用程序的SPSite访问64位SharePoint》经验,为你挑选了1个好方法。

我创建了一个以32位模式运行的批处理作业,因为它使用32位COM目标,这需要连接到SharePoint以进行列表更新.它在我的开发环境中工作,因为它是完整的32位.但在我的测试和制作环境中,我们使用的是64位SharePoint,这是我从SPSite获得的:

System.IO.FileNotFoundException: 
  The Web application at http:/// could not be found. 
  Verify that you have typed the URL correctly. 
  If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.

at Microsoft.SharePoint.SPSite..ctor(SPFarm farm, Uri req...

这就是我做的

        using (SPSite site = new SPSite(_url))
        {
            using (SPWeb web = site.OpenWeb())
            {
                try
                {
                    SPList list = web.Lists[new Guid(_listID)];
                    SPListItem item = list.GetItemById(id);
                    item[field] = value;
                    item.SystemUpdate(false);
                }
                catch (Exception x)
                {
                    log.Error(x);
                }
            }
        }

Lars Fastrup.. 6

您只需要在64位进程中运行批处理作业.问题是SharePoint在您的测试和生产环境中有许多COM对象,这些对象在64位编译.SPSite和SPWeb对象实际上包装了COM对象,这就是它们在32位进程中失败的原因.

一种解决方法是通过其Web服务而不是对象模型与SharePoint进行交互.



1> Lars Fastrup..:

您只需要在64位进程中运行批处理作业.问题是SharePoint在您的测试和生产环境中有许多COM对象,这些对象在64位编译.SPSite和SPWeb对象实际上包装了COM对象,这就是它们在32位进程中失败的原因.

一种解决方法是通过其Web服务而不是对象模型与SharePoint进行交互.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有