C# asp.net web服务中没有为此对象错误定义无参数构造函数
我在尝试运行web服务WizardService.asmx时遇到此错误:C# asp.net web服务中没有为此对象错误定义无参数构造函数,c#,asp.net,web-services,asmx,C#,Asp.net,Web Services,Asmx,我在尝试运行web服务WizardService.asmx时遇到此错误: System.MissingMethodException: No parameterless constructor defined for this object. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, R
System.MissingMethodException: No parameterless constructor defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Web.Services.Protocols.ServerProtocol.CreateServerInstance()
at System.Web.Services.Protocols.WebServiceHandler.Invoke()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
这是我用C编写的web服务代码#
我在网上看到的所有地方(包括这个网站)似乎都表明这个错误消息与MVC有关,但我没有使用MVC。这是一个ASMX.Net 4.5 web服务。问题:您已使用
private
access修饰符声明了构造函数。因此,在类之外构造对象是不可访问的
解决方案:您应该拥有public
access修饰符,以便从类外部访问构造函数来构造对象
替换此项:
private WizardService()
为此:
public WizardService()
您有
private
无参数构造函数,该构造函数在类外不可访问。将构造设置为公共
,以便可以在类之外访问它,以构造向导服务的对象
public WizardService()
{
eventLog = new EventLog("EktronWizardServiceLog", "localhost", "EktronWizardService");
}
public该类型或成员可由同一程序集或引用它的另一程序集中的任何其他代码访问
private类型或成员只能由同一类或结构中的代码访问
受保护的类型或成员只能由同一类或结构中的代码访问,或由该类派生的类中的代码访问
内部类型或成员可由同一程序集中的任何代码访问,但不能从另一程序集中访问
您可以阅读有关访问修饰符的更多信息 序列化必须使用公共默认构造函数
public WizardService()
{
eventLog = new EventLog("EktronWizardServiceLog", "localhost", "EktronWizardService");
}