2012-11-08 39 views
0

这里是app.config我:wcfextras仍生成许多文件一个WSDL文件,而不是

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <extensions> 
     <behaviorExtensions> 
     <add name="wsdlExtensions" type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
     </behaviorExtensions> 
    </extensions> 

    <behaviors> 
     <endpointBehaviors> 
     <behavior name="WsdlSampleEndpointBehavior"> 
      <wsdlExtensions singleFile="true" /> 
     </behavior> 
     </endpointBehaviors> 

     <serviceBehaviors> 
     <behavior> 
      <serviceMetadata httpGetEnabled="True"/> 
      <serviceDebug includeExceptionDetailInFaults="True"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    <diagnostics> 
     <messageLogging 
      logEntireMessage="true" 
      logMalformedMessages="true" 
      logMessagesAtServiceLevel="true" 
      logMessagesAtTransportLevel="true" 
      maxMessagesToLog="3000" 
      maxSizeOfMessageToLog="20000"/> 
    </diagnostics> 
<services> 
    <service name="VogService"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8733/"/> 
     </baseAddresses> 
    </host> 
    <endpoint address="GoToTheMarketService" 
    binding="basicHttpBinding" bindingConfiguration="GoToTheMarketService" 
    contract="GoToTheMarketService" name="GoToTheMarketService" behaviorConfiguration="WsdlSampleEndpointBehavior"> 
     <identity> 
     <dns value="localhost"/> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
    </service> 
</services> 

<bindings> 
    <basicHttpBinding> 
    <binding name="GoToTheMarketService" closeTimeout="00:01:00" 
     openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
     allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
     maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
     messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
     useDefaultWebProxy="true"> 
     <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
     maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None" proxyCredentialType="None" 
      realm="" /> 
     <message clientCredentialType="UserName" algorithmSuite="Default" /> 
     </security> 
    </binding> 
    </system.serviceModel> 

    <system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel.MessageLogging"> 
     <listeners> 
      <add name="messages" 
      type="System.Diagnostics.XmlWriterTraceListener" 
      initializeData="C:\messages.svclog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

我加wcfextras到项目引用,甚至将其设置为本地复制。

在它只是产生与XSD进口等相同WSDL文件中的结果:

... 
<wsdl:import namespace="aaa" location="http://localhost:8733/?wsdl=wsdl0"/> 
... 
<xsd:schema targetNamespace="aaa/Imports"> 
<xsd:import schemaLocation="http://localhost:8733/?xsd=xsd0" namespace="aaa"/> 
<xsd:import schemaLocation="http://localhost:8733/?xsd=xsd1" namespace="http://lalala.com/asdas12"/> 
</xsd:schema> 
... 

我怎样才能使它产生只有一个单一的WSDL文件?

回答

0

为了得到一个传统的WSDL,我们使用以下步骤:

  1. 在你svc.vb,导入System.Web.Services
  2. 在你.svc.vb,标记与<WebMethod()>每个公开方法
  3. 添加.asmx文件(同一个目录中的.svc) 代码中的.asmx:

  4. 现在,在浏览器中点击您的网址到新的.asmx WSDL
  5. 繁荣。 WSDL