【发布时间】:2023-03-25 11:25:02
【问题描述】:
我正在开发我的第一个 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";
}
}
我错过了什么?
【问题讨论】:
-
你有定义你的合约的接口,以及实现它的类吗?如果是这样,您能否发布该代码?
-
这个问题会不会与在 Cassini 上运行有关?
-
它可能与 Cassini 有关,因为根据 this article,Cassini 会为每个实例分配一个新的端口号,这将使您的端点无效。
标签: .net wcf wcf-binding wcf-configuration