调用 WebService 方法时出现错误 System.InvalidOperationException
Posted
技术标签:
【中文标题】调用 WebService 方法时出现错误 System.InvalidOperationException【英文标题】:Getting Error System.InvalidOperationException When Invoke WebService Method 【发布时间】:2012-02-20 07:37:01 【问题描述】:我已经创建了一个 WebService..并在 WebService 中创建了 Get 方法..
我的代码是
公共类 WebService : System.Web.Services.WebService
DataClassesDataContext db = new DataClassesDataContext(); public WebService () //Console.log("Enter"); //Uncomment the following line if using designed components //InitializeComponent(); [WebMethod] public string HelloWorld() return "Hello World"; [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] public object Get() return db.Countries.ToList();
但是当我在那里测试 Web 服务时,我得到以下错误..
System.InvalidOperationException:生成错误 XML 文档。 ---> System.InvalidOperationException:类型 System.Collections.Generic.List`1[[国家,App_Code.hlnie2jd, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]] 可能不是 在这种情况下使用。在 System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(字符串 名称、字符串 ns、对象 o、布尔 xsiType)在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write1_Object(字符串 n, String ns, Object o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write3_anyType(对象 o) 在 Microsoft.Xml.Serialization.GeneratedAssembly.ObjectSerializer.Serialize(对象 objectToSerialize,XmlSerializationWriter 作家)在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, 对象 o、XmlSerializerNamespaces 命名空间、字符串 encodingStyle、 String id) --- 内部异常堆栈跟踪结束 --- at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, 对象 o、XmlSerializerNamespaces 命名空间、字符串 encodingStyle、 字符串 id) 在 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter、Object o、XmlSerializerNamespaces 命名空间)在 System.Xml.Serialization.XmlSerializer.Serialize(TextWriter textWriter, 对象 o) 在 System.Web.Services.Protocols.XmlReturnWriter.Write(HttpResponse 响应,流输出流,对象返回值)在 System.Web.Services.Protocols.HttpServerProtocol.WriteReturns(对象 [] returnValues,流输出流)在 System.Web.Services.Protocols.WebServiceHandler.WriteReturns(Object[] 返回值)在 System.Web.Services.Protocols.WebServiceHandler.Invoke()
任何有解决方案的人请帮助我
【问题讨论】:
【参考方案1】:这可能是因为你的方法签名有对象作为返回类型。
看看这个问题: ...may not be used in this context...while serialization
【讨论】:
如果我将方法声明为 List[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)] public List<Country> Get() return db.Countries.ToList();
那么同样的错误...【参考方案2】:
您不能从服务中返回列表或对象类型。
但是你可以返回数组:
[WebMethod]
public Country[] Get()
// get you data
return data.ToArray();
【讨论】:
以上是关于调用 WebService 方法时出现错误 System.InvalidOperationException的主要内容,如果未能解决你的问题,请参考以下文章
在从 blob 存储中获取文件并传递给模型进行预测时出现 azure aci webservice 的超时错误
调用 [playerFactory play] 方法时出现错误访问错误