首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

访问WCF总是提示未找到终结点是咋回事

2012-10-30 
访问WCF总是提示未找到终结点是怎么回事?代码如下:DMSWcfService.svc-----------------------------------

访问WCF总是提示未找到终结点是怎么回事?
代码如下:
DMSWcfService.svc
-------------------------------------------------
using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Linq;
using System.ServiceModel.Web;
using System.Web;
using System.ServiceModel.Activation;

namespace Seahisoft.Main.DMSWcfService
{
  [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  public class ConfigMngService : IConfigMngService
  {
  public string GetData(int value)
  {
  return string.Format("You entered: {0}", value);
  }

  public CompositeType GetDataUsingDataContract(CompositeType composite)
  {
  if (composite.BoolValue)
  {
  composite.StringValue += "Suffix";
  }
  return composite;
  }
  }
}


IConfigMngService.cs
-------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel;
using System.Runtime.Serialization;

namespace Seahisoft.Main.DMSWcfService
{
  // 注意: 如果更改此处的接口名称 "IService1",也必须更新 Web.config 中对 "IService1" 的引用。
  [ServiceContract]
  public interface IConfigMngService
  {
  [OperationContract]
  string GetData(int value);

  [OperationContract]
  CompositeType GetDataUsingDataContract(CompositeType composite);

  // 任务: 在此处添加服务操作
  }
}


Web.config
-------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<!--
  注意: 除了手动编辑此文件以外, 
  还可以使用 Web 管理工具来配置应用程序的设置。
  可以使用 Visual Studio 中的“网站”->“Asp.Net 配置”选项。
  设置和注释的完整列表在 
  machine.config.comments 中,该文件通常位于 
  \Windows\Microsoft.Net\Framework\v2.x\Config 
-->
<configuration>
  <configSections>
  <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
  <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
  <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />


  <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
  <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
  </sectionGroup>
  </sectionGroup>
  </sectionGroup>
  </configSections>
  <appSettings />
  <connectionStrings />
  <system.web>
  <!--
  设置 compilation debug="true" ,将调试符号 
  插入已编译的页面中。但由于这会影响性能, 
  因此请只在开发过程中 
  将此值设置为 true。
  -->
  <compilation debug="false">
  <assemblies>
  <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
  <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
  </compilation>
  <!--
  通过 <authentication> 节可以配置
  ASP.NET 使用的安全身份验证 
  模式,以标识传入的用户。 
  -->
  <authentication mode="Windows" />
  <!--
  通过 <customErrors> 节可以配置在执行请求过程中出现未处理错误时, 
  应执行的操作。 
  具体说来,开发人员通过该节 
  可以配置要显示的 html 错误页 
  以代替错误堆栈跟踪。

  <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
  <error statusCode="403" redirect="NoAccess.htm" />
  <error statusCode="404" redirect="FileNotFound.htm" />
  </customErrors>
  -->
  <pages>
  <controls>
  <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </controls>
  </pages>
  <httpHandlers>
  <remove verb="*" path="*.asmx" />
  <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" />
  </httpHandlers>
  <httpModules>
  <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </httpModules>
  </system.web>


  <system.codedom>
  <compilers>
  <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
  <providerOption name="CompilerVersion" value="v3.5" />
  <providerOption name="WarnAsError" value="false" />
  </compiler>
  </compilers>
  </system.codedom>
  <system.web.extensions>
  <scripting>
  <webServices>
  <!--
  取消对此节的注释以启用身份验证服务。如果适用,请加入 
  requireSSL="true"。

  <authenticationService enabled="true" requireSSL = "true|false"/>
  -->
  <!--
  取消对这些行的注释,以启用配置文件服务并选择 
  可在 ASP.NET AJAX 应用程序中检索和修改的
  配置文件属性。

  <profileService enabled="true"
  readAccessProperties="propertyname1,propertyname2"
  writeAccessProperties="propertyname1,propertyname2" />
  -->
  <!--
  取消对此节的注释,以启用角色服务。

  <roleService enabled="true"/>
  -->
  </webServices>
  <!--
  <scriptResourceHandler enableCompression="true" enableCaching="true" />
  -->
  </scripting>
  </system.web.extensions>
  <!--
  在 Internet 信息服务 7.0 下,运行 ASP.NET AJAX 要求 
  system.webServer 节。这在以前版本的 IIS 中并非必需。
  -->
  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />
  <modules>
  <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </modules>
  <handlers>
  <remove name="WebServiceHandlerFactory-Integrated" />
  <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </handlers>
  </system.webServer>
  <system.serviceModel>
  <services>
  <service name="Seahisoft.Main.DMSWcfService.ConfigMng" behaviorConfiguration="Seahisoft.Main.DMSWcfService.ConfigMngBehavior">
  <!-- Service Endpoints -->
  <endpoint address="" binding="wsHttpBinding" contract="Seahisoft.Main.DMSWcfService.IConfigMng">


  <!-- 
  部署时,应删除或替换下列标识元素,以反映
  在其下运行部署服务的标识。删除之后,WCF 将
  自动推导相应标识。
  -->
  <identity>
  <dns value="localhost" />
  </identity>
  </endpoint>
  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
  </services>
  <behaviors>
  <serviceBehaviors>
  <behavior name="Seahisoft.Main.DMSWcfService.ConfigMngBehavior">
  <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点-->
  <serviceMetadata httpGetEnabled="true" />
  <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息-->
  <serviceDebug includeExceptionDetailInFaults="false" />
  </behavior>
  </serviceBehaviors>
  </behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
  </system.serviceModel>
</configuration>

[解决办法]
首先需要启动Wcf Service,其次访问需要对应配置文件,其中包含WCF Service EndPoint (终结点)的相关内容。

如Wcf Service部署在IIS中,可以通过如 http://localhost/ConfigMngService/DMSWcfService.svc 得到如何使用工具获得客户端代理类和对应配置文件的帮助。
[解决办法]
客户端是如何调用的,EndPoint是如何配置的?
MSDN上WCF的介绍中就有相关实例说明,你看看。
[解决办法]
你client端的web.config有改过吗?

热点排行