我创建了一个非常简单的WCF服务,但由于某种原因,我遇到了svcutil
的问题。我使用下面的命令:从WCF服务检索元数据时出错
svcutil http://localhost:8098/IceVSServer/service?wsdl
我得到以下输出:
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1]
Copyright (c) Microsoft Corporation. All rights reserved.
Attempting to download metadata from 'http://localhost:8098/IceVsServer/service?wsdl' using WS-Metadata Exchange or DISCO.
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 4.0.30319.1]
Copyright (c) Microsoft Corporation. All rights reserved.
Error: Cannot obtain Metadata from http://localhost:8098/IceVsServer/service?wsdl
If this is a Windows (R) Communication Foundation service to which you have acce
ss, please check that you have enabled metadata publishing at the specified addr
ess. For help enabling metadata publishing, please refer to the MSDN documentat
ion at http://go.microsoft.com/fwlink/?LinkId=65455.
WS-Metadata Exchange Error
URI: http://localhost:8098/IceVsServer/service?wsdl
Metadata contains a reference that cannot be resolved: 'http://localhost:8098/IceVsServer/service?wsdl'.
There was no endpoint listening at http://localhost:8098/IceVsServer/service
?wsdl that could accept the message. This is often caused by an incorrect addres
s or SOAP action. See InnerException, if present, for more details.
The remote server returned an error: (404) Not Found.
HTTP GET Error
URI: http://localhost:8098/IceVsServer/service?wsdl
There was an error downloading 'http://localhost:8098/IceVsServer/service?wsdl'.
The request failed with HTTP status 404: Not Found.
If you would like more help, type "svcutil /?"
错误似乎表明我没有MEX端点。我做的事实上,如果我把URL放到我的浏览器中,XML就会出现。
这里是我的app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="IceVSService.IceVsService" behaviorConfiguration="IceVsServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8098/IceVsService/service"/>
</baseAddresses>
</host>
<!-- this endpoint is exposed at the base address provided by host: http://localhost:8098/IceVsService/service -->
<endpoint address=""
binding="wsHttpBinding"
contract="IceVSService.IIceVersioningSystem" />
<!-- the mex endpoint is explosed at http://localhost:8098/IceVsService/service/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="IceVsServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="False"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
你是对的...这正是它。我尝试了..长天笑。谢谢您的帮助 – Icemanind 2012-08-11 06:33:13