添加Wcf服务不允许命名空间访问

时间:2011-07-11 18:03:39

标签: asp.net wcf iis

我创建了一个名为ServiceIRE的wcf服务。我通过右键单击解决方案资源管理器中的eproject并单击添加服务引用,为我的项目添加服务引用。我能够发现我创建的服务,并在指定命名空间ServiceReference1后单击“确定”。所有文件似乎都是正确生成的。

然后我转到代码隐藏并尝试使用“使用ServiceReference1;”添加使用语句。即使命名空间显然存在于同一个项目中,文件也无法识别这一点。

非常感谢任何帮助。

ServiceIRE.cs

namespace FakeIREServiceLibrary
{

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ServiceIRE : IServiceIRE
{
    public string GetData()
    {
        Random rnd = new Random();
        var randomNumber = rnd.Next(10);
        Random rndID = new Random();
        var randomNumberID = rnd.Next(10000);
        Thread.Sleep(randomNumber*1000);
        return string.Format("Thread # {0} returned in {1} nanoseconds", randomNumberID, rnd.Next());
    }


}

IServiceIRE.cs

namespace FakeIREServiceLibrary
{

    [ServiceContract]
    public interface IServiceIRE
    {
        [OperationContract]
        string GetData();

    }
}

Page.aspx.cs

using ServiceReference1; //THIS IS NOT RECOGNIZED

提前谢谢你:)

2 个答案:

答案 0 :(得分:2)

您项目的默认命名空间是什么?

我相信你必须做一些像“使用DefaultNamespaceForProject.ServiceReference1;”这样的事情。

右键单击项目可以找到默认命名空间。单击“属性”,然后转到“应用程序”选项卡。

答案 1 :(得分:1)

在显示该项目的所有文件后,通过查看“服务引用”中的Reference.cs文件,可以找到Visual Studio生成的服务客户端的命名空间。默认值为[Project namespace]。[指定名称空间]。

由于错误,它可能没有生成文件。这可能是你所看到的行为。

我还鼓励您NOT use Add Service Reference,而是use a ChannelFactorybuild a reusable service client