我有很多例外情况:
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 System
,using System.Web
等。 Im My项目我还有系统文件夹和WCF服务在MyProj/System/WcfServices/SystemService.svc
。因此,它创建了一个名为MyProj.System.WcfServices
的cs文件。
此命名空间与System命名空间混淆因为创建错误的文件是由系统生成的(它是为Web引用创建的References.cs文件),所以我无法编辑该文件。我怎么解决呢?..
答案 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; “属性”。转到“应用程序”选项卡,然后在“目标框架”下查看。