wcf web.config文件

Gui*_*ini 6 .net c# wcf web-services 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>
Run Code Online (Sandbox Code Playgroud)

我在其他wcf中得到了相同的web.config,并且工作得像一个冠军,ofc与不同的文件夹和文件.我的文件夹结构如下.

在此输入图像描述

当我试着玩它时,我得到了这个,

 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).
Run Code Online (Sandbox Code Playgroud)

所以,我只做了1 wcf,并使用相同的web.conif工作得很好.我对exp的好运和对此的了解正在扼杀我.任何线索?

Thx提前.

Eli*_*ing 4

据我所知,mexHttpBinding如果您想向客户端公开 WSDL,则只需要带有 的端点。Visual Studio(或 wcfutil.exe)需要 WSDL 描述来创建 Web 服务客户端类。

创建这些 Web 服务客户端类后,您不需要再公开 WSDL。

更新:配置文件中的元素<service>应如下所示:

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

    <endpoint address="mex" binding="mexHttpBinding" 
        contract="IMetadataExchange" />
</service>
Run Code Online (Sandbox Code Playgroud)