Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Sharepoint计时器作业上的GacInstall也称为SPJobDefinition_C#_Sharepoint_Gac_Sharepoint Timer Job - Fatal编程技术网

C# Sharepoint计时器作业上的GacInstall也称为SPJobDefinition

C# Sharepoint计时器作业上的GacInstall也称为SPJobDefinition,c#,sharepoint,gac,sharepoint-timer-job,C#,Sharepoint,Gac,Sharepoint Timer Job,我正在尝试为我们的Sharepoint解决方案实现一个插件体系结构,管理员可以上传dll文件,这些文件将由我们的解决方案安装和处理 实现需要GAC安装上传的dll,我使用 private void InstallToGac(byte[] libraryContent, string filename) { string path = tempFolder + filename; File.WriteAllBytes(path, li

我正在尝试为我们的Sharepoint解决方案实现一个插件体系结构,管理员可以上传dll文件,这些文件将由我们的解决方案安装和处理

实现需要GAC安装上传的dll,我使用

private void InstallToGac(byte[] libraryContent, string filename)
        {
            string path = tempFolder + filename;
            File.WriteAllBytes(path, libraryContent);
            try
            {
                new System.EnterpriseServices.Internal.Publish().GacInstall(path);
            }
            catch (Exception ex)
            {
                Logger.Error("Error while installing dll to GAC.", ex);
                throw;
            }
            finally
            {
                File.Delete(path);
            }
        }
这只需将dll安装到GAC,如果在Sharepoint上下文中调用,则效果良好。但是,它不能在多服务器环境下工作,因为这将只在管理员上载文件的前端安装它。因此,我通过继承
SPJobDefinition
将上面的代码移动到计时器作业。GacInstall不再将dll安装到GAC。在调试模式下,
GacInstall
行工作正常,不会引发任何异常,但也不会产生任何影响

System.Security.Principal.WindowsIdentity.GetCurrent().Name;

返回计时器作业中的
网络服务
。我在单服务器SharePoint 2010基金会上工作,但我需要在单服务器和多服务器环境下工作2007/2010/2013。

证明:<代码>网络服务< /代码>一直是个问题。我不认为这是一个问题,因为我的所有SharePoint应用程序池运行通过网络服务,不知何故功能良好。更改“本地服务”上“Sharepoint 2010计时器”服务的“登录身份”修复了此问题

另外,在某些情况下,
GacInstall(path)
也不会抛出异常,并生成没有任何有用信息的Windows事件