Error occurred in deployment step ‘Retract Solution‘: xxx 无法反序列化,因为它没有公共的默认构造函数

一.环境:SharePoint 2016 + Visual Studio 2015,

二.错误描述:

错误1:帮朋友写个计时器Demo,部署位置GAC,来回部署几次后,vs2015报错:

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 Error?occurred?in?deployment?step?‘Retract?Solution‘:?SP_CustomTimerJob.ListTimerJob?无法反序列化,因为它没有公共的默认构造函数。

?

错误2:打开管理中心—监控—复查作业,也报错:

SP_CustomTimerJob.ListTimerJob?无法反序列化,因为它没有公共的默认构造函数。

错误3:重新运行配置向导,继续报错:

System.MissingMethodException:?SP_CustomTimerJob.ListTimerJob?cannot?be?deserialized?because?it?does?not?have?a?public?default?constructor

?

其他错误:使用各种命令卸载wsp或者删除TimerJob,都会报上面的错误。整个状态就是卸不掉,删不掉。

?

三.解决步骤:

首先,当vs报错时,我着魔似的顺手把对应的Feature用PowerShell给删除了,导致通过正常途径(包括命令)再也删不掉wsp了(这个坑害的我用了几乎一天才爬上来)。

教训就是,不要手动删除wsp包中的feature,要通过卸载wsp包的方式来移除feature。

报错的原因是继承SPJobDefinition的类里,没有提供默认的构造函数。类似如下:

解决办法,修改继承的SPJobDefinition类,添加需要的构造函数。然后用vs重新生成一下(用vs部署会失败)。

下面就是用gacutil.exe工具,把项目的dll注册到GAC里。这是最关键的一步。完成后,会发现管理中心的"复查作业"可以进去了。

剩下的就是用命令强制移除原来的wsp包,然后重新添加,然后重新强制安装wsp包。

?

参考:

https://bernado-nguyen-hoan.com/2010/06/03/cant-retract-sharepoint-timer-job-because-the-job-cannot-be-deserialized-because-it-does-not-have-a-public-default-constructor/

https://sharepoint.stackexchange.com/questions/193490/solution-cannot-be-deserialized-because-it-does-not-have-a-public-default-constr

原文地址:https://www.cnblogs.com/sygwin/p/8794518.html

时间: 2024-11-03 20:48:08

Error occurred in deployment step ‘Retract Solution‘: xxx 无法反序列化,因为它没有公共的默认构造函数的相关文章

SharePoint Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问

错误出现的前提:多个用户在一台机器上做开发,使用非系统管理员账号时会出现,因为一般创建网站集时指定管理员为系统管理员: Error occurred in deployment step 'Recycle IIS Application Pool': 0x80070005:拒绝访问 使用 Visual Studio 2010 部署时报错,错误截图如下: 原因:当前部署代码的用户不是部署代码网站集的管理员,加上即可: 一般网站集管理员在网站集创建是指定的: 解决这个错误,可以增加权限: 步骤: 

eclipse - An internal error occurred during: "Running Android Lint"

概述 也不晓得为什么,编译eclipse,设置打开,就自动报错: An internal error occurred during: "Running Android Lint" solution 打开 eclipse根目录下的 'eclipse.ini'文件,将有'-Xms'和'-Xmx'的两行进行修改, 将原内容 1 -startup 2 plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 3 --launcher.l

学习jvm,关于MAT an internal error occurred during:"Parsing heap dump" from问题

写了一个死循环不断的创建对象,模拟内存溢出 1 package com.zuo.test1; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 public class Main { 7 8 public static void main(String[] args) { 9 List<Demo> demos=new ArrayList<>(); 10 while(true){ 11 demos.add(new

Mysql Solution - Timeout error occurred trying to stop MySQL Daemon. Stopping MySQL: [FAILED] -

错误如下: Timeout error occurred trying to stop MySQL Daemon. Stopping mysqld:                                           [FAILED] Starting mysqld:                                           [  OK  ] 解决办法: [[email protected]AY140624215512103ccdZ local]# So

[DeploymentService:290066]Error occurred while downloading files from admin server for deployment re

上周部署项目到weblogic时候,一直报消息图标 - 错误 [DeploymentService:290066]Error occurred while downloading files from admin server for deployment request "1,428,631,595,356". Underlying error is: "null".具体截图如下: 解决方案如下: 1.经过查找发现,项目本身都是采用UTF-8,项目新增的页面有部分

tomcat部属项目时报错:An internal error occurred during Add Deployment.java.lang.NullPointerException

在tomcat上部部署时报错: An internal error occurred during Add Deployment. java.lang.NullPointerException 查了一下说出现这种错误一般是是因为down的项目与本机的JDK版本不一致所致. 查了一下发现导入的类库报错,删除后重新选择jdk就好了 右键项目名→Properties→Java Build Path→Libraries→选中JRE System Library[Sun JDK 1.5.0.22]→Edi

使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpointerexception

问题描述: 使用myeclipse10的tomcat插件部署web项目时,首次部署.实际部署到了tomcat/webapps目录下且tomcat启动成功,但是eclipse报错"An internal error occurred during: "Add Deployment"  : 且eclipse中看不到部署的项目.重新部署按钮也无法点击,如图: myeclipse中看不到部署的项目: myeclipse中可以看到部署的项目如下(作为看不到项目的对比): 再次试图部署项

SVN:Unable to connect to a repository at URL &#39;xxx&#39; Error running context: An error occurred during authentication

昨天某人使用SVN时,遇到这样的问题, Unable to connect to a repository at URL 'xxx'Error running context: An error occurred during authentication 解决办法: 0.如果你是win10系统,检查下你现在登录操作系统的账户是不是微软账户,而不是本地账户, 控制面板——用户——账户信息 如果是下面这样则是本地账户,否则点击那个“改用本地账户登录”,之后再重启下,用本地账户登录,再试试你的SVN

[Ruby on Rails Issue] When Setting Sqlite version on the Gemfile, Show error &quot;An error occurred while installing sqlite3 &quot;,

Issue: Gem files will remain installed in /tmp/bundler20140825-31835-p0c0p/sqlite3-1.3.9/gems/sqlite3-1.3.9 for inspection.Results logged to /tmp/bundler20140825-31835-p0c0p/sqlite3-1.3.9/extensions/x86-linux/1.9.1/sqlite3-1.3.9/gem_make.outAn error