.net WCF错误-';无法获取元数据';
我正在开发我的第一个WCF服务,在尝试在VisualStudio内部启动该服务时出错。因此,它将在卡西尼号下运行 错误是:.net WCF错误-';无法获取元数据';,.net,wcf,wcf-binding,wcf-configuration,.net,Wcf,Wcf Binding,Wcf Configuration,我正在开发我的第一个WCF服务,在尝试在VisualStudio内部启动该服务时出错。因此,它将在卡西尼号下运行 错误是: Error: Cannot obtain Metadata from http://localhost:1393/BEService.svc 这是我的配置 <behaviors> <serviceBehaviors> <behavior name="metadataBehavior"&
Error: Cannot obtain Metadata from http://localhost:1393/BEService.svc
这是我的配置
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="metadataBehavior" name="DataServices.BEService">
<endpoint address="" binding="basicHttpBinding" contract="DataServices.IBEService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:1393" />
</baseAddresses>
</host>
</service>
</services>
下面是实现它的类:
public class BEService : IBEService
{
public string Get271EDI(string EDI, Enums.EDIRequestor requestor)
{
return "this is a test";
}
}
我遗漏了什么?也许我弄错了,但我认为当端点为空或相对时,您需要为服务使用基址,而您不使用IIS,不是吗
<host>
<baseAddresses>
<add baseAddress="http://localhost:1393/MyService"/>
</baseAddresses>
</host>
编辑:您应该更详细地检查您得到的错误。我认为有一些内部细节可以帮助你解决这个案子。可能是您的实现中的某些内容不符合WCF规则。更改WCF配置时,编辑器将所有配置移动到app.config文件中。然而,我读到的很多文章都引用了web.config中的配置。因此,我将它们移动到web.config并删除了app.config。一切都开始起作用了。然后,我遇到了一个问题,它回答了我关于何时使用web.config vs app.config的问题。您是否有一个定义合同的接口,以及一个实现它的类?如果是,请发布该代码好吗?问题可能与在Cassini上运行有关吗?可能与Cassini有关,因为根据,Cassini在每个实例上分配了一个新的端口号,这将使您的端点无效。尝试此操作时出现了相同的错误。更新问题以显示更改。将阅读您的链接。@BillMartin您的更改看起来不像Cristi建议的那样。您缺少了/MyService/部分。你确定要加上那个吗?
<host>
<baseAddresses>
<add baseAddress="http://localhost:1393/MyService"/>
</baseAddresses>
</host>