WIndows服务中的WCF服务引用错误

时间:2016-03-17 14:39:42

标签: wcf service reference

我有一个基本命名空间为XXXX的Windows服务。我有许多WCF服务,其基本命名空间为WebServices。它们托管在IIS中。

当我将其中一个WCF服务(DataManagement)作为服务引用添加到我的Windows服务时,构建服务时出现以下错误:

Error   162 The type name 'WebServices' does not exist in the type 'XXXX.XXXX'   
Reference.cs    Line 200    Col 61  

Error   163 The type name 'WebServices' does not exist in the type 'XXXX.XXXX'   
Reference.cs    Line 205    Col 94  

Error   164 The type name 'WebServices' does not exist in the type 'XXXX.XXXX'   
Reference.cs    Line 205    Col 134

Reference.cs是一个自动生成的文件,创建的代码行是:

错误1:

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface IDataManagementChannel : XXXX.WebServices.IDataManagement, System.ServiceModel.IClientChannel {
}

错误2& 3:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class DataManagementClient : System.ServiceModel.ClientBase<XXXX.WebServices.IDataManagement>, XXXX.WebServices.IDataManagement {

我一直在努力解决这些问题但没有取得多大成功。我发现似乎与此问题无关的任何建议都不适用于我。问题存在一个问题,但没有答案。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我非常确定您的问题正如以下代码

所示
namespace XXXX
{
    class XXXX
    {
    }
}

namespace XXXX.WebServices
{
    class A
    {
    }

    class B : XXXX.WebServices.A // compiler error : CS0426 The type name 'WebServices' does not exist in the type 'XXXX'
    { 
    }
}

编译器正在尝试在名为XXXX的类WebServices中找到嵌套类型而不是XXXX.WebServices命名空间,因此错误&#34; 不存在于的类型 &#34;

您可以通过在名称空间前加global::前缀来明确指出您引用名称空间的事实。在Reference.cs等生成的文件上执行此操作并不理想。如果可能,可以考虑在不同的命名空间中生成代理。

请参阅编译器错误CS0426 here

的帮助

答案 1 :(得分:0)

有点晚了,但万一有人偶然发现了......

重现的步骤:

创建一个Windows服务项目&#34; TestService&#34;。 将Service1类重命名为TestService。

编译 - 它有效。

添加对WCF服务的引用。

编译 - 它不再有效。

错误CS0426:类型名称&#39; SomeWCFService&#39;类型&#39; TestService&#39;中不存在

解决方案:将TestService类的名称更改为其他名称,因为它与TestService名称空间冲突。