我正在处理我的第一个WCF服务,并且在尝试在visual studio中启动服务时遇到错误。所以,它将在Cassini下运行。
错误是:
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>
这是我定义服务合同的界面:
[ServiceContract]
public interface IBEService
{
[OperationContract]
string Get271EDI(string EDI, DDKSLib.Enums.EDIRequestor requestor);
}
以下是实现它的类:
public class BEService : IBEService
{
public string Get271EDI(string EDI, Enums.EDIRequestor requestor)
{
return "this is a test";
}
}
我错过了什么?
答案 0 :(得分:0)
也许我错了,但我认为当端点为空或相对而你不使用IIS时,你需要使用基地址进行服务,不是吗?
<host>
<baseAddresses>
<add baseAddress="http://localhost:1393/MyService"/>
</baseAddresses>
</host>
以下是关于WCF Addressing
的文章编辑:您应该详细了解您获得的错误。我认为有一些内在的细节可以帮助你解决这个问题。可能是您的实现中的某些内容不符合WCF规则。
答案 1 :(得分:0)
更改WCF配置时,编辑器将所有配置移动到app.config文件。但是,我阅读的很多文章都引用了web.config中的引用配置。所以,我将它们移动到web.config并删除了app.config。一切都开始奏效了。然后,我遇到了this问题,该问题回答了我关于何时使用web.config vs app.config的问题。