C# WCF服务,作为服务属性值提供的类型…;找不到
当我在Visual Studio 2012中右键单击C# WCF服务,作为服务属性值提供的类型…;找不到,c#,wcf,wcf-binding,C#,Wcf,Wcf Binding,当我在Visual Studio 2012中右键单击Eval.svc并在浏览器中查看时,我得到以下信息- 找不到在ServiceHost指令中作为服务属性值提供的或在配置元素system.serviceModel/serviceHostingEnvironment/serviceActivations中提供的类型“evalServiceLibrary.Eval” 当我从测试客户端运行WCF服务时,一切正常 评估服务: [ServiceBehavior(InstanceContextMode =
Eval.svc
并在浏览器中查看时,我得到以下信息-
找不到在ServiceHost指令中作为服务属性值提供的或在配置元素system.serviceModel/serviceHostingEnvironment/serviceActivations中提供的类型“evalServiceLibrary.Eval”
当我从测试客户端运行WCF服务时,一切正常
评估服务:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class EvalService : IEvalService
{
Dictionary<string, JobPhaseTimer> jobTimers = new Dictionary<string, JobPhaseTimer>();
public void SubmitEntry(ENBO.Jobs.Job job, ENBO.Jobs.JobDetail jobDetail, ENBO.TimeLogs.TimeLog timeLog, ENBO.Users.User user, ENBO.Utilities.EntryType entryType, JobPhase jobPhase)
{
if (entryType == EntryType.Active)
{
JobPhaseTimer timer = new JobPhaseTimer();
timer.UID = job.ID + "_" + jobPhase.ID;
timer.JobID = job.ID;
timer.JobDetailID = jobDetail.ID;
timer.PhaseID = jobPhase.ID;
timer.StartTime = DateTime.Now;
timer.Stopwatch.Start();
jobTimers.Add(timer.UID, timer);
TimeLog log = new TimeLog();
log.JobID = job.ID;
log.PhaseID = jobPhase.ID;
log.UserID = user.ID;
log.DateEntry = DateTime.Now;
log.EntryType = EntryType.Active;
if (log.AddNewTimeLog())
{
//Do something
}
}
else if (entryType == EntryType.Paused)
{
JobPhaseTimer timer = jobTimers[job.ID + "_" + jobPhase.ID];
timer.Stopwatch.Stop();
TimeLog log = new TimeLog();
log.JobID = job.ID;
log.PhaseID = jobPhase.ID;
log.UserID = user.ID;
log.DateEntry = DateTime.Now;
log.EntryType = EntryType.Paused;
if (log.AddNewTimeLog())
{
//Do something
}
}
}
}
Eval.svc
标记:
<%@ ServiceHost Language="C#" Debug="true" Service="EvalServiceLibary.Eval" %>
你知道我为什么会犯这个错误吗?我在谷歌上搜索了几页,但似乎什么都没用
谢谢 结果是Eval.svc.cs需要将其命名空间更改为evalServiceLibrary,而不是EvalServiceSite。将
Eval.svc
文件中的以下行更改为:
<%@ ServiceHost Language="C#" Debug="true" Service="EvalServiceLibary.Eval" %>
致:
我自己刚刚碰到了这个问题,而这个问题和网上的任何其他答案都没有解决我的问题。对我来说,这是一个奇怪的问题,虚拟目录是在另一个源代码管理服务器的不同分支上创建的(基本上,我们从TFS 2010升级到2013),解决方案不知怎么记住了它的映射
无论如何,我再次单击了服务项目属性中的“创建虚拟目录”按钮。它给了我一条关于映射到其他文件夹的消息,我想更新它。我单击了“是”,解决了问题。确保二进制文件位于“.svc”文件的“bin”子目录下。仔细检查Project.net版本。使用不同.net版本相互引用的项目会导致问题。在我的例子中,我在iis上对错误的文件夹执行了“转换为应用程序”操作。
我的应用程序被设置在它应该位于的子文件夹中。我更改了服务的输出路径。它应该位于服务项目的
bin
文件夹中。一旦我将输出路径放回bin
,它就工作了。当我在Visual Studio中将当前生成配置设置为除调试以外的其他设置时,出现了此错误。这是一个旧错误,但我今天在一个web服务上遇到了它,该服务自通过“新建\项目..”创建以来几乎没有被更改过
对我来说,此问题是由包含以下内容的“IService.cs
”文件引起的:
<%@ ServiceHost Language="C#" Debug="true" Service="JSONWebService.Service1.svc" CodeBehind="Service1.svc.cs" %>
请注意,您需要从Visual Studio外部打开此文件
Visual Studio在解决方案资源管理器中显示了一个文件,
Service1.cs
,但这只允许您更改Service1.svc.cs
,而不是Service1.svc
文件。我也遇到了同样的问题。我特意将生成输出路径设置为“.\bin”,当我将生成输出路径设置为“\bin”时,它对我来说是有效的。当我更改标记中的Service=“Namespace.ServiceName”标记(右键单击xxxx.svc并选择在visual studio中查看标记)以匹配我用于xxxx.svc.cs文件的命名空间时,问题得到了解决
/bin
或/App\u code
文件夹位于IIS应用程序的根目录中。因此,请记住将所有代码放在根目录/bin
或/App\u code
目录中(请参阅)namespace.ClassName
),并且服务名称和接口与web.config中端点的服务标记和约定的name属性相同右键单击解决方案资源管理器中的.svc文件,然后单击查看标记
<%@ ServiceHost Language="C#" Debug="true"
Service="MyService.**GetHistoryInfo**"
CodeBehind="GetHistoryInfo.svc.cs" %>
更新您所引用的服务引用。我也遇到了同样的问题。确保在
.svc
文件的工厂
属性中包含程序集名称。如果重命名了项目程序集名称,可能需要清理IIS缓存。它是web项目吗?web.config是什么样子的?是的,一个web项目。我已将web.config添加到问题中。干杯这应该在我的“奇怪的WCF服务错误列表”或什么的。成功了!要添加,如果找不到指定的标记,请在解决方案资源管理器中右键单击.svc文件,然后单击“查看标记”。否则,如果打开它,它将打开代码文件.OMG!在我将教程中的服务名称从service1改为其他名称后,我到处寻找这个。用鼠标右键点击.svc文件,我省去了几个小时的头发拉扯!!!我很高兴这对你们有用。干杯-Ali Rahimyth在.svc已经创建之后,当我更改项目下的名称空间时,这种情况发生在我身上。第二点帮助了我,服务名称包括名称空间名称,但不包括类名,因此按名称空间完成了服务名称。ClassName我在测试客户端上调试时遇到此错误,必须以某种方式将\bin\debug删除为just\bin才能使其正常工作。为什么会这样?这正是我的问题。命名空间限定符区分大小写。很好。我已经手动更改了合同名和c#文件名,所以这也是我必须手动完成的。谢谢,太好了。就这样!我忘了我清洗了溶液。只是需要建造。这样一个模糊的错误我的输出路径被设置为“bin\Debug\”。我把它改为“bin”并通过了这个错误。VS允许你通过右键单击和“查看标记”来编辑这个文件。这为我做到了。最初原因是对默认服务名称“Service1”的“重命名”操作失败。
<%@ ServiceHost Language="C#" Debug="true" Service="EvalServiceLibary.EvalService" %>
<%@ ServiceHost Language="C#" Debug="true" Service="JSONWebService.Service1.svc" CodeBehind="Service1.svc.cs" %>
<%@ ServiceHost Language="C#" Debug="true" Service="JSONWebService.Service1" CodeBehind="Service1.svc.cs" %>
<%@ ServiceHost Language="C#" Debug="true"
Service="MyService.**GetHistoryInfo**"
CodeBehind="GetHistoryInfo.svc.cs" %>