我正在使用WCF服务创建一个Web应用程序。
我遵循的步骤是,
1)创建了一个新的WCF服务应用程序。
2)添加了新的WCF服务。
3)创建了一个类库。
4)添加了一个新课程,我将在下面提到这些代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace ClassLibrary1
{
public interface IUSerDetails
{
[OperationContract]
string InsertUserDetails(UserDetails user);
}
[DataContract]
public class UserDetails
{
string username = string.Empty;
string password = string.Empty;
string country = string.Empty;
string email = string.Empty;
[DataMember]
public string UserName
{
get { return username; }
set { username = value; }
}
[DataMember]
public string Password
{
get { return password; }
set { password = value; }
}
[DataMember]
public string Country
{
get { return country; }
set { country = value; }
}
[DataMember]
public string Email
{
get { return email; }
set { email = value; }
}
}
}
当我在Ln 13
上进行鼠标悬停时,现在在[OperationContract]
。它给出了一个错误。 您是否缺少using指令或程序集引用。
所以我以为我错过了命名空间
我补充说 使用system.ServiceModel; ,但同样在两行中都显示相同的错误。缺少什么?答案 0 :(得分:0)
根据链接https://social.msdn.microsoft.com/Forums/vstudio/en-US/96ffb6d7-8737-4c4d-8512-58967d0b69cd/wcf-on-godaddy-compiler-doesnt-recognize-operationcontract?forum=wcf,您需要进行两项更改。首先,将以下行添加到web.config文件的httpmodules部分:
<httpModules>
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</httpModules>
其次,将以下行添加到web.config文件的程序集部分:
<assemblies>
<add assembly="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
答案 1 :(得分:0)
将[ServiceContract]写在Line“interface IUSerDetails”
之上答案 2 :(得分:0)
我使用Visual Studio for Mac在.NET Framework 4.7中创建新的控制台项目。
奇怪的是,它对来自[ServiceContract]
的{{1}}属性感到非常满意,但是却抱怨System.ServiceModel
属性:
[OperationContract]
检查OperationContractAttribute Class文档后,我发现需要Program.cs(10,10): Error CS0246: The type or namespace name 'OperationContactAttribute' could not be found (are you missing a using directive or an assembly reference?) (CS0246)
Program.cs(10,10): Error CS0246: The type or namespace name 'OperationContact' could not be found (are you missing a using directive or an assembly reference?) (CS0246)
程序集。由于某些原因,System.ServiceModel.Primitives
程序集无法通过“项目引用”在“程序包”和“ .NET程序集”选项卡中使用。
我从Project References中删除了所有程序集,并使用NuGet修复了上述错误,即:
System.ServiceModel.Primitives
除了将Install-Package System.ServiceModel.Primitives
添加到项目引用之外,它还重新添加了:
现在,我可以重新添加需要继续的其他程序集。希望这会有所帮助。