我很抱歉,如果我听到agressiv但我接近将我的机器扔出窗外,因为这是WCF连续第三天烧毁我的工作时间。
我今天早上创建了一个简单的WCF服务。我可以从Visual Studio启动它,因此它托管在WCF服务主机中,我可以在3个不同的项目中运行时将其作为服务引用包含在内。我可以从控制台应用程序托管,客户端可以连接到它。
现在我需要另一个项目中的Servicereference,但我不能再在WCF服务主机中托管wcf了。它告诉我:
Microsoft WCF-Diensthost
Der WCF-Diensthost kann keine Dienstmetadaten finden。 Dies kann zunichtordnungsgemäßer> AusführungderClientanwendungführen。 ÜberprüfenSie,ob Metadaten aktiviert sind。 MöchtenSieden Vorgang wasden?
Ja Nein
谷歌翻译:
Microsoft WCF服务主机
WCF服务主机找不到任何服务元数据。这可能导致错误 执行客户端应用程序。检查元数据是否已启用。你想退出吗?
是否
WCF实现其接口或配置没有变化。我仍然可以在控制台应用程序中托管它,但我不能再获得服务引用。 配置是这样的:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
<!-- Bei der Bereitstellung des Dienstbibliothekprojekts muss der Inhalt der Konfigurationsdatei der app.config-Datei
des Hosts hinzugefügt werden. System.Configuration unterstützt keine Konfigurationsdateien für Bibliotheken. -->
<system.serviceModel>
<services>
<service behaviorConfiguration="WcfHost.Service1Behavior" name="WcfHost.Service1">
<endpoint address="" binding="netTcpBinding" bindingConfiguration=""
contract="WcfHost.IWcfInfoHost">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration=""
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8732/InfoHost/Service1/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfHost.Service1Behavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
这怎么能不改变?
答案 0 :(得分:0)
请检查web.config文件中的serviceMetaData部分: - serviceMetadata httpGetEnabled =&#34; false&#34;
<serviceBehaviors>
<behavior name="WcfHost.Service1Behavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
只需设置 serviceMetadata httpGetEnabled =&#34; true&#34;
答案 1 :(得分:0)
重新创作后我想出来了。我错了,项目没有改变。我改变了接口实现的类名,所以
<service behaviorConfiguration="WcfHost.Service1Behavior" name="WcfHost.Service1">
不再正确。
但令人非常不安的是,VS重构工具无法更改app.conf,并且最令人不安的是,errormassage与实际错误无关。 WCF让我哭泣。