Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# asp.net web服务中没有为此对象错误定义无参数构造函数_C#_Asp.net_Web Services_Asmx - Fatal编程技术网

C# asp.net web服务中没有为此对象错误定义无参数构造函数

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

我在尝试运行web服务WizardService.asmx时遇到此错误:

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");
}