2012-01-06 47 views
6

ok, tệp của tôi có cấu trúc này.tệp wcf web.config

<system.serviceModel> 
    <services> 
     <service name="ManyaWCF.ServiceManya" behaviorConfiguration="ServiceBehaviour"> 
      <!-- Service Endpoints --> 
      <!-- Unless fully qualified, address is relative to base address supplied above --> 
      <endpoint address="" binding="webHttpBinding" contract="ManyaWCF.IServiceManya" behaviorConfiguration="web"> 
       <!-- 
      Upon deployment, the following identity element should be removed or replaced to reflect the 
      identity under which the deployed service runs. If removed, WCF will infer an appropriate identity 
      automatically. 
     --> 
      </endpoint> 
     </service> 

    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="ServiceBehaviour"> 
       <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment --> 
       <serviceMetadata httpGetEnabled="true" /> 
       <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
      <behavior name="web"> 
       <webHttp /> 
      </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 

tôi có cùng web.config trong wcf khác và làm việc như một nhà vô địch, ofc với các thư mục và tệp khác nhau. cấu trúc thư mục của tôi là như sau.

enter image description here

Khi tôi cố gắng để chơi nó tôi có được điều này,

Service 

This is a Windows © Communication Foundation. 

The metadata publishing for this service is currently disabled. 

If you access the service, you can enable metadata publishing by completing the following steps to modify the configuration file or web application: 

1. Create the following service behavior configuration, or add the item to a configuration <serviceMetadata> existing service behavior: 

<behaviors> 
<serviceBehaviors> 
    <behavior name="MyServiceTypeBehaviors"> 
     httpGetEnabled="true" <serviceMetadata /> 
    </ Behavior> 
</ ServiceBehaviors> 
</ Behaviors> 
2. Add the behavior configuration to the service: 

    name="MyNamespace.MyServiceType" <service behaviorConfiguration="MyServiceTypeBehaviors"> 
    Note: The service name must match the name of the configuration for the service implementation. 

3. Add the following to end service configuration: 

binding="mexHttpBinding" contract="IMetadataExchange" <endpoint address="mex" /> 
Note: the service must have an http base address to add this. 

Here is an example of a service configuration file with metadata publishing enabled: 

<configuration> 
<system.serviceModel> 

    <services> 
     <! - Note: the service name must match the name of the configuration for the service implementation. -> 
     name="MyNamespace.MyServiceType" <service behaviorConfiguration="MyServiceTypeBehaviors"> 
      <! - Add the following end. -> 
      <! - Note: the service must have an http base address to add this. -> 
      binding="mexHttpBinding" contract="IMetadataExchange" <endpoint address="mex" /> 
     </ Service> 
    </ Services> 

    <behaviors> 
     <serviceBehaviors> 
      <behavior name="MyServiceTypeBehaviors"> 
       <! - Add the following item to the service behavior configuration. -> 
       httpGetEnabled="true" <serviceMetadata /> 
      </ Behavior> 
     </ ServiceBehaviors> 
    </ Behaviors> 

</ System.serviceModel> 
</ Configuration> 

    For more information about publishing metadata, see the following documentation: http://go.microsoft.com/fwlink/?LinkId=65455 (may be in English). 

như vậy, tôi chỉ làm 1 WCF và làm việc tốt với cùng web.conif. May mắn của tôi về exp và kiến ​​thức về điều này là giết chết tôi. Bất kỳ đầu mối nào?

Thx trước.

Trả lời

4

Theo như tôi biết, bạn chỉ cần điểm cuối với mexHttpBinding nếu bạn muốn hiển thị WSDL cho khách hàng. Visual Studio (hoặc wcfutil.exe) cần mô tả WSDL để tạo các lớp máy khách webservice.

Sau khi các lớp máy khách webservice này được tạo, bạn không cần phải hiển thị WSDL nữa.

UPDATE: Các <service> phần tử trong tập tin cấu hình của bạn sẽ giống như thế này:

<service name="ManyaWCF.ServiceManya" behaviorConfiguration="ServiceBehaviour"> 
    <endpoint address="" binding="webHttpBinding" 
     contract="ManyaWCF.IServiceManya" behaviorConfiguration="web" /> 

    <endpoint address="mex" binding="mexHttpBinding" 
     contract="IMetadataExchange" /> 
</service> 
+0

hmm. tôi có thể thấy mexhttpbinding trên mã. Tôi không thể nhìn thấy nếu có điều gì đó sai hoặc cần phải cơ hội một cái gì đó –

+0

@Guillermo - Tôi không thấy điểm cuối mex được kích hoạt trong tệp cấu hình của bạn. Có thể bài viết sau sẽ giúp: http://blogs.msdn.com/b/brajens/archive/2007/04/26/accessing-description-metadata-wsdl-of-wcf-web-service.aspx –

+0

không phải là điều này, ?? –

-2
<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <httpRuntime maxRequestLength="1048576" executionTimeout="3600" /> 
    </system.web> 
    <appSettings> 
    </appSettings> 
    <connectionStrings> 
    <add name="SQLConnect" connectionString="Your_Connection_String";User id=sa;Password=welcome3#"/> 
    </connectionStrings> 
    <system.serviceModel> 
    <services> 
     <service name="WCFRestService.RestServiceSvc" behaviorConfiguration="serviceBehavior"> 
     <endpoint address="" bindingConfiguration="secureHttpBinding" binding="webHttpBinding" contract="WCFRestService.IRestServiceSvc" behaviorConfiguration="web"></endpoint> 
     </service> 
    </services> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="web"> 
      <webHttp /> 
     </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
     <behavior name="serviceBehavior"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    <bindings> 
     <webHttpBinding> 
     <binding name="secureHttpBinding" 
      maxBufferPoolSize="2147483647" 
      maxReceivedMessageSize="2147483647" 
      maxBufferSize="2147483647" transferMode="Streamed">  
     </binding> 
     </webHttpBinding> 
    </bindings> 

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <httpProtocol> 
     <customHeaders>  
     </customHeaders> 
    </httpProtocol> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="1073741824" /> 
     </requestFiltering> 
    </security> 
    <directoryBrowse enabled="true" /> 
    </system.webServer> 
    <system.web.extensions> 
    <scripting> 
     <webServices> 
     <jsonSerialization maxJsonLength="50000000"/> 
     </webServices> 
    </scripting> 
    </system.web.extensions> 
</configuration> 
+0

Câu trả lời của bạn, mặc dù cung cấp một ví dụ chính xác, không giúp trả lời câu hỏi OP. Bạn nên cung cấp thêm chi tiết. – PseudoNinja

Các vấn đề liên quan