我在visual studio 2015上创建了一个WCF服务,其中一个方法返回一个MySqlCommand。当我尝试在另一个服务上添加服务的引用时,我收到一个错误:
下载“http://localhost:54740/GetCommand.svc/ $元数据”时出错。 请求失败,HTTP状态为400:错误请求。 元数据包含无法解析的引用:“http://localhost:54740/GetCommand.svc”。 内容类型application / soap + xml;服务不支持charset = utf-8。客户端和服务绑定可能不匹配。 远程服务器返回错误:(415)无法处理消息,因为内容类型为'application / soap + xml; charset = utf-8'不是预期的类型'text / xml;字符集= UTF-8' .. 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
我搜索了很多,我找不到解决方案,服务代码如下:
public class GetCommand : IGetCommand
{
public MySqlCommand getCmd(string q, MySqlConnection con)
{
return new MySqlCommand(q, con);
}
}
,合同代码是:
[ServiceContract]
public interface IGetSqlConnection
{
[OperationContract]
MySqlConnection getConnection(string query);
}
当我按下发现按钮时找到该服务,但我无法将其添加为参考。该解决方案的所有其他服务都在运作。
答案 0 :(得分:1)
MySqlCommand
是客户端的未知类型,您应该引用包含其定义的程序集。
无论如何你正在做的事情没什么意义。一旦您的客户获得MySqlCommand
的实例,它如何使用它?客户端通常在另一台机器上,而且命令与它有连接(也许是一个事务)。
另外,我不认为类型MySqlCommand
是可序列化的。