WCF-Dienst, der als Dienstattributwerte angegebene Typ ... konnte nicht gefunden werden
Wenn ich einen Rechtsklick auf Eval.svc
innerhalb von Visual Studio 2012 und im browser anzeigen möchte, bekomme ich folgende -
Den Typ 'EvalServiceLibary.Eval', als Service-Attribut-Wert in der ServiceHost-Richtlinie, oder, sofern in das configuration-element-system.serviceModel/serviceHostingEnvironment/serviceActivations konnte nicht gefunden werden.
Wenn ich das WCF-Dienst vom test-client, funktioniert alles einwandfrei.
Eval-service:
[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
}
}
}
}
IEvalService.cs
(Service-Vertrag)
[ServiceContract]
public interface IEvalService
{
[OperationContract]
void SubmitEntry(Job job, JobDetail jobDetail, TimeLog timeLog, User user, EntryType entryType, JobPhase jobPhase);
}
Eval.svc
markup :
<%@ ServiceHost Language="C#" Debug="true" Service="EvalServiceLibary.Eval" %>
Web.config
:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</system.web>
<system.serviceModel>
<services>
<service name="EvalServiceLibary.EvalService">
<endpoint address="" behaviorConfiguration="" binding="webHttpBinding"
contract="EvalServiceLibary.IEvalService" />
<endpoint address="" binding="basicHttpBinding" bindingConfiguration=""
contract="EvalServiceLibary.IEvalService" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="EvalServiceSite.EvalAspNetAjaxBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
Irgendwelche Ideen, warum bin ich immer diese Fehlermeldung? Ich habe bei Google eine Suche und kommen über ein paar Seiten, aber nichts scheint zu funktionieren.
Dank!
InformationsquelleAutor der Frage dynamicuser | 2013-07-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die folgende Zeile in Ihre
Eval.svc
- Datei aus::
InformationsquelleAutor der Antwort user3578181
Sicherzustellen, dass die binären Dateien sind unter "bin" Unterverzeichnis ".svc" Datei
InformationsquelleAutor der Antwort vasek
Konfrontiert, die genau dieses Thema. Das problem behoben, wenn ich änderte den Service="Namespace.ServiceName" - tag im Markup (Rechtsklick xxxx.svc und wählen Sie " Ansicht-Markup in visual studio) um den namespace zu suchen, die ich für mein xxxx.svc.cs-Datei
InformationsquelleAutor der Antwort TheCopyPaster
Stellt sich heraus, dass die Eval.svc.cs erforderlich, den namespace geändert, um EvalServiceLibary, anstatt EvalServiceSite.
InformationsquelleAutor der Antwort dynamicuser
Ich traf dieses Problem mich, und weder diese noch eine der anderen Antworten, die auf das net mein Problem gelöst. Für mich war es eine seltsame, wobei das virtuelle Verzeichnis erstellt worden, die auf einen anderen Zweig in einer anderen source-control-server (im Grunde, haben wir ein Upgrade von TFS 2010 bis 2013) und die Lösung irgendwie erinnerte es mapping.
Trotzdem klickte ich auf "Create Virtual Directory" - Taste erneut, in den Eigenschaften des Dienst-Projekt. Es gab mir eine Meldung über die Zuordnung zu einem anderen Ordner und das möchte ich aktualisieren. Ich habe auf ja geklickt haben, und dass das Problem behoben wurde.
InformationsquelleAutor der Antwort Detail
Beim anlegen einer IIS-Anwendung nur die
/bin
oder/App_Code
Ordner ist im root-Verzeichnis des IIS app. So nur daran erinnern, setzen Sie den code in das root -/bin
oder/App_code
Verzeichnis (siehe http://blogs.msdn.com/b/chrsmith/archive/2006/08/10/wcf-service-nesting-in-iis.aspx).Stellen Sie sicher, dass der ServiceName und der Vertrag enthalten vollständige name(e.g
namespace.ClassName
), und die service-Namen und die Schnittstelle ist die gleiche wie das name-Attribut des service-tag-Nummer und der Vertrag Endpunkt im web.config.InformationsquelleAutor der Antwort Venkata Deekshit Ganti
Änderte ich den output-Pfad des Dienstes. es sollte drin sein
bin
Ordner, der die service-Projekt. Wenn ich die Ausgabe Weg zurück zubin
es funktionierte.InformationsquelleAutor der Antwort Gokul
Klicken Sie rechts auf die .svc-Datei im Projektmappen-Explorer, und klicken Sie auf
View Markup
Update der service Referenz, in der Sie sprechen.
InformationsquelleAutor der Antwort Joe
Überprüfen Projekten .net-Versionen. Projekte verwiesen, dass jeder andere mit verschiedenen .net-Versionen zu Problemen führt.
InformationsquelleAutor der Antwort Mehmet
In meinem Fall habe ich eine "Convert to application" auf den falschen Ordner am iis.
Mein Antrag wurde in einem Unterordner von wo es hätte sein sollen.
InformationsquelleAutor der Antwort Navy Seal
Hatte ich diesen Fehler hatte, wenn ich die aktuelle build-Konfiguration in Visual Studio setzen auf etwas anderes als Debug.
InformationsquelleAutor der Antwort BineG
Ich hatte auch gleiche problem. Absichtlich mein build output-Pfad "..\bin" und es funktioniert für mich, wenn ich den build output path "als" \bin".
InformationsquelleAutor der Antwort K.Kirivarnan
Dies ist ein Alter bug, aber ich traf Sie heute auf einen web-service, der kaum verändert wurde, seit wird erstellt über "New \ Project.."
Für mich, dieses Problem wurde verursacht durch die "
IService.cs
" Datei, die Folgendes enthält:Beachten Sie den Wert in der
Service
Attribut enthält ".svc
" am Ende.Dieser nicht da sein sollte.
Entfernen diese 4 Zeichen hat dieses Problem behoben.
Beachten Sie, dass Sie benötigen zum öffnen dieser Datei außerhalb von Visual Studio.
Visual Studio zeigt eine Datei, die
Service1.cs
im Projektmappen-Explorer, aber das können Sie nur verändernService1.svc.cs
nicht dieService1.svc
Datei.InformationsquelleAutor der Antwort Mike Gledhill