我正在通过SvcUtil.exe更新我的wcf服务引用。 命令如下:
SvcUtil.exe http://localhost:50886/Service1.svc /n:*,ClassLibrary2.ServiceReference1 / o:服务引用\ ServiceReference1 \ Reference.cs /ct:System.Collections.Generic.List`1,mscorlib,Version = 2.0.0.0 ,Culture = neutral,PublicKeyToken = b77a5c561934e089 /config:app.config
我的wcf代码如下:
=============================================== ===============
namespace WcfService1
{
[ServiceContract]
[ServiceKnownType(typeof(Dictionary<string, string>))]
public interface **IService1**
{
[OperationContract]
string GetData(int value);
// TODO: Add your service operations here
[OperationContract]
string Hello(string value);
}
}
namespace WcfService1
{
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public string Hello(string value)
{
return string.Format("You entered: {0}", value);
}
}
}
我在我的类库项目中使用此服务,该项目的名称为ClassLibrary1。当我通过visual studio更新此服务时,在Reference.cs中我得到以下声明:
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="**ServiceReference1.IService1**")]
public interface IService1
但是当我通过svcutil更新服务时,我得到了以下声明:
[System.ServiceModel.ServiceContractAttribute(ConfigurationName="**ClassLibrary2.ServiceReference1.IService1**")]
public interface IService1
不同之处在于配置名称。我不明白我应该在svcutil中使用哪个命令来设置配置名称,就像 ServiceReference1.IService1 一样?
请帮忙。
答案 0 :(得分:1)
只需将[ServiceContract]
更改为[ServiceContract(Name="ServiceReference1.IService1", ConfigurationName="ServiceReference1.IService1")]
即可。请参阅this block post。