我正在尝试使用WCFExtras从我的服务(ExternalOrderService.svc)获取单个文件WSDL。
我修改了WCFExtras SampleServer项目中的原始web.config,添加了对我的服务的引用。 ServerSample工作正常,我成功调用了Sample.WsdlSample wsdl文件,但我没有成功调用我的服务wsdl。 以下配置有什么问题?
<system.serviceModel>
<services>
<service behaviorConfiguration="Sample.WsdlSampleBehavior" name="Sample.WsdlSample">
<endpoint address="" behaviorConfiguration="Sample.WsdlSampleEndpointBehavior" binding="basicHttpBinding" contract="Sample.IWsdlSample"/>
</service>
<service behaviorConfiguration="Sample.SoapHeadersSampleBehavior" name="Sample.SoapHeadersSample">
<endpoint address="" behaviorConfiguration="Sample.SoapHeadersSampleEndpointBehavior" binding="basicHttpBinding" contract="Sample.ISoapHeadersSample"/>
</service>
<service behaviorConfiguration="ExternalOrderServiceBehavior" name="ExternalOrderService">
<endpoint address="" binding="basicHttpBinding" contract="Monclick.MVC2.Services.External.IExternalOrderService" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="Sample.WsdlSampleEndpointBehavior">
<wsdlExtensions location="http://127.0.0.1/Sample/WsdlSample.svc" singleFile="True"/>
</behavior>
<behavior name="Sample.SoapHeadersSampleEndpointBehavior">
<wsdlExtensions location="http://127.0.0.1/Sample/SoapHeadersSample.svc"/>
</behavior>
<behavior name="ExternalOrderServiceBehavior">
<wsdlExtensions location="http://api.local/Services/ExternalOrderService.svc" singleFile="true" />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="Sample.WsdlSampleBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="false"/>
</behavior>
<behavior name="Sample.SoapHeadersSampleBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="ExternalOrderServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<!-- Declare that we have an extension called WSDL Extras-->
<add name="wsdlExtensions" type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
答案 0 :(得分:0)
区别在于地址。工作的服务有“127.0.0.1”,那个不起作用的服务有“api.local”。
尝试将“api.local”替换为“127.0.0.1”。
我看到的另一件事是你没有定义任何mex端点。
答案 1 :(得分:0)
问题出在这段代码中:
<service behaviorConfiguration="ExternalOrderServiceBehavior" name="ExternalOrderService">
<endpoint address="" binding="basicHttpBinding" contract="Monclick.MVC2.Services.External.IExternalOrderService" />
</service>
您尚未为服务的端点定义behaviorConfiguration
。更改为此,它应该工作:
<service behaviorConfiguration="ExternalOrderServiceBehavior" name="ExternalOrderService">
<endpoint address="" behaviorConfiguration="ExternalOrderServiceBehavior" binding="basicHttpBinding" contract="Monclick.MVC2.Services.External.IExternalOrderService" />
</service>