访问WCF服务时出错

访问WCF服务时出错,wcf,deployment,hosting,Wcf,Deployment,Hosting,我有一个很奇怪的问题。 我有一个工作WCF服务 [ServiceContract] public interface IService { [OperationContract] int AddResult(int result, string name); [OperationContract] int list(int count); } 在另一个类中,我实现了这个服务。它是有效的。 但当我改变方法“列表”时,如下所示: [ServiceC

我有一个很奇怪的问题。 我有一个工作WCF服务

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    int list(int count);
}
在另一个类中,我实现了这个服务。它是有效的。 但当我改变方法“列表”时,如下所示:

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    List<string> list(int count);        
}
[服务合同]
公共接口设备
{
[经营合同]
int AddResult(int result,字符串名称);
[经营合同]
列表(整数计数);
}
当我从目标项目(它是一个Windows Phone应用程序)添加服务引用时,我会收到几个错误和警告。它们的关键思想是无法加载服务(或无法加载端点)。 两种方法之间的区别是非常小的-列表而不是int类型。但这是至关重要的。
为什么会这样?为什么我不能使用列表?

是否尝试将列表集合封装到代理类中?您可以尝试以下方法:

[DataContract]
public class MyData
{
    [DataMember]
    public List<string> list { get; set; }
}

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    MyData list(int count);        
}
[DataContract]
公共类MyData
{
[数据成员]
公共列表{get;set;}
}
[服务合同]
公共接口设备
{
[经营合同]
int AddResult(int result,字符串名称);
[经营合同]
MyData列表(整数计数);
}
还有,看看这个,我想这可能就是你想要的

更新

根据本线程评论部分的讨论,问题不在WCF服务本身,而是在@user1460819 Windows Phone app中生成的客户端上


此问题在WCF服务绑定更改为“basicHttpBinding”后得到解决,客户端上的WCF引用重新生成,整个项目重新生成。

是否尝试将列表集合封装到代理类中?您可以尝试以下方法:

[DataContract]
public class MyData
{
    [DataMember]
    public List<string> list { get; set; }
}

[ServiceContract]
public interface IService
{
    [OperationContract]
    int AddResult(int result, string name);

    [OperationContract]        
    MyData list(int count);        
}
[DataContract]
公共类MyData
{
[数据成员]
公共列表{get;set;}
}
[服务合同]
公共接口设备
{
[经营合同]
int AddResult(int result,字符串名称);
[经营合同]
MyData列表(整数计数);
}
还有,看看这个,我想这可能就是你想要的

更新

根据本线程评论部分的讨论,问题不在WCF服务本身,而是在@user1460819 Windows Phone app中生成的客户端上


此问题在WCF服务绑定更改为“basicHttpBinding”后得到解决,客户端上的WCF引用重新生成,整个项目重新生成。

警告之一是:“自定义工具警告:调用目标引发异常。C:\Documents\Visual Studio 2010\project\project\Service References\ServiceReference1\Reference.svcmap”另一个警告是“自定义工具警告:未找到与Silverlight 3兼容的终结点”。除非通过构造函数提供端点信息,否则生成的客户端类将不可用。C:\Documents\Visual Studio 2010\project\project\Service References\ServiceReference1\Reference.svcmap”和一个非常重要的事实(我几分钟前注意到)是从控制台应用程序我可以使用我的WCF服务没有任何错误,但在Windows Phone应用程序中存在几个错误。那么,我想你的错误应该在Windows Phone应用程序中…你在移动应用程序中使用什么连接到WCF服务?它是Microsoft API吗?即使你使用的是Microsoft API,也有可能是这样的如果应用程序中没有API,则它不支持那些奇特的WCF绑定,如:wsHttpBinding,请尝试将其更改为:basicHttpBinding。此外,据我所知,除basicHttpBinding外,Microsoft以外的任何其他绑定都不支持。因此,如果您希望兼容,应坚持使用此绑定。以下是WCF中绑定的快速介绍:。其中一个警告是:自定义工具警告:调用目标引发了异常。C:\Documents\Visual Studio 2010\project\project\Service References\ServiceReference1\Reference.svcmap“另一个警告是”自定义工具警告:未找到与Silverlight 3兼容的终结点。除非通过构造函数提供端点信息,否则生成的客户端类将不可用。C:\Documents\Visual Studio 2010\project\project\Service References\ServiceReference1\Reference.svcmap”和一个非常重要的事实(我几分钟前注意到)是从控制台应用程序我可以使用我的WCF服务没有任何错误,但在Windows Phone应用程序中存在几个错误。那么,我想你的错误应该在Windows Phone应用程序中…你在移动应用程序中使用什么连接到WCF服务?它是Microsoft API吗?即使你使用的是Microsoft API,也有可能是这样的如果应用程序中没有API,则它不支持那些奇特的WCF绑定,如:wsHttpBinding,请尝试将其更改为:basicHttpBinding。此外,据我所知,除basicHttpBinding外,Microsoft以外的任何其他绑定都不支持。因此,如果您希望兼容,应坚持使用此绑定。以下是WCF中绑定的快速教程:。