许多错误 - 它们是什么以及如何解决?

时间:2011-04-22 01:37:42

标签: c# .net wcf web-services

我有很多例外情况:

Error   95  The type or namespace name 'Web' does not exist in the namespace 'MyProj.System' (are you missing an assembly reference?)   C:\Projects\Solution\MyProj\Web References\GeneralServices\Reference.cs 269 24  MyProj

Error   108 The type or namespace name 'Uri' does not exist in the namespace 'MyProj
.System' (are you missing an assembly reference?)   C:\Projects\Solution\MyProj\Web References\GeneralServices\Reference.cs 322 43  MyProj

我唯一能做的就是添加WCF服务(我已经在同一个项目中拥有了Web服务)。我该如何解决这些错误? 他们是从哪里来的?

出于某种原因,我不知道有人关闭了这个问题,因为他们认为这是假问题。所以这不是一个假问题,如果他们需要更多信息 - 他们可以是具体的,并且我会提供它。我知道它看起来非常通用 - 但我真的不知道要添加什么信息。

这肯定不是参考问题。在我添加外部Web服务后生成的Reference.cs文件中添加wcf服务和所有错误准确之后,它就发生了。

*的 修改 *
这是我添加的WCF服务的代码。我不确定是不是问题:

using System.Collections.Generic;
using System.Linq;
using MyProj.Domain.Business.Entities.System.Calls;
using MyProj.Domain.Business.EntitiesRepository.System.Calls;
using StructureMap;

namespace MyProj.System.WcfServices
{
    public class SystemService : MyProjService, ISystemService
    {
        #region Calls

        public Reason[] GetCallReasons()
        {
            IReasonRepository rep =
                ObjectFactory.GetInstance<IReasonRepository>();
            return rep.GetReasonsList().ToArray();
        }

        public Call InsertCall(long reasonId, string phoneNumber, string description)
        {
            ICallRepository rep =
                ObjectFactory.GetInstance<ICallRepository>();
            return rep.Insert(User.UserCompany.CompanyId, reasonId, phoneNumber, description);
        }

        public void UpdateCall(long callId, long reasonId, string phoneNumber, string description)
        {
            ICallRepository rep =
                ObjectFactory.GetInstance<ICallRepository>();
            rep.Update(User.UserCompany.CompanyId, callId, reasonId, phoneNumber,
                description);
        }

        public void CloseCall(long callId)
        {
            ICallRepository rep =
                ObjectFactory.GetInstance<ICallRepository>();
            rep.CloseCall(User.UserCompany.CompanyId, callId);
        }

        public IList<CallsListItem> GetCallsList(bool? isClosed)
        {
            ICallRepository rep =
                ObjectFactory.GetInstance<ICallRepository>();
            return rep.GetCallsList(User.UserCompany.CompanyId, isClosed);
        }

        public Call GetCall(long callId)
        {
            ICallRepository rep =
                ObjectFactory.GetInstance<ICallRepository>();
            return rep.GetCall(User.UserCompany.CompanyId, callId);
        }
        #endregion
    }
}

* 另一个编辑 *
我记得我还从Here安装了ef4.1 也许它有所作为?? ..

* 另一个编辑 *
我想我明白了!但我还是不知道如何解决这个问题 创建错误的文件包含using Systemusing System.Web等。 Im My项目我还有系统文件夹和WCF服务在MyProj/System/WcfServices/SystemService.svc。因此,它创建了一个名为MyProj.System.WcfServices的cs文件。 此命名空间与System命名空间混淆因为创建错误的文件是由系统生成的(它是为Web引用创建的References.cs文件),所以我无法编辑该文件。我怎么解决呢?..

3 个答案:

答案 0 :(得分:4)

一种解决方案是停止命名文件夹“System”!

另一种解决方案是限定系统命名空间:

using global::System;
using global::System.Web.UI;

答案 1 :(得分:1)

这意味着您缺少程序集引用。例如。您在代码中引用了尚未添加对项目的引用的类型。听起来您需要通过右键单击项目并选择“添加引用”来添加对System.Web的引用。

如果这不起作用,那么请确保您的项目是针对完整的.NET框架而不是“客户端配置文件” - 通过右键单击项目并选择“属性”然后设置“目标框架”来执行此操作在“申请”标签上。

答案 2 :(得分:0)

即使引用被正确添加,也许.NET版本不匹配? .NET 4 Client不支持所有WCF功能,因此可能是问题所在。有时intellisense和编译器并不完全相同,所以它看起来似乎一切正常,但它无法构建。

您可以通过右键单击项目来检查项目设置的版本 - &gt; “属性”。转到“应用程序”选项卡,然后在“目标框架”下查看。