Fre*_*eek 3 rest wcf soap wsdl web-services
我正在创建一个WCF4服务,其REST和SOAP端点将在IIS 7.5中托管.我以WCF4 REST模板为例.但是到目前为止我对我的设置有几个问题.
这是我的webconfig
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<behaviors>
<endpointBehaviors>
<behavior name="REST">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MEXGET">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MEXGET" name="Project.WebService.VehicleService">
<endpoint
address=""
behaviorConfiguration="REST"
binding="webHttpBinding"
contract="Project.WebService.IVehicleService" />
<endpoint
address="soap"
binding="basicHttpBinding"
contract="Project.WebService.IVehicleService" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
我删除了standardEndpoints部分并添加了自己的端点.没有.svc文件,因为我在global.asax中设置了路由,如下所示
private void RegisterRoutes()
{
RouteTable.Routes.Add(new ServiceRoute("VehicleService", new WebServiceHostFactory(), typeof(VehicleService)));
}
Run Code Online (Sandbox Code Playgroud)
可以通过http:// localhost:1313/ServiceTest/VehicleService/help访问帮助页面
我还使用WCF测试客户端访问http:// localhost:1313/ServiceTest/VehicleService/mex ,它显示了SOAP端点的元数据
但是,如何检索服务的WSDL?
使用svc文件,我可以在http:// localhost:1313/ServiceTest/VehicleService.svc找到wsdl ?wsdl但是我没有.svc文件.我也无法在http:// localhost:1313/ServiceTest/VehicleService?wsdl或http:// localhost:1313/ServiceTest/VehicleService/soap?wsdl找到WSDL
如果我想为SOAP端点发布WSDL,是否需要添加.svc文件?
我设法让WSDL在http:// localhost:1313/ServiceTest/VehicleService?wsdl上运行.解决方案是在global.asax中使用新的ServiceHostFactory而不是新的WebServiceHostFactory.使用WebServiceHostFactory,您将失去WSDL功能.
类似的问题可以在这里找到: ServiceRoute + WebServiceHostFactory杀死WSDL生成?如何使用?wsdl创建无扩展的WCF服务
| 归档时间: |
|
| 查看次数: |
11420 次 |
| 最近记录: |