WCF异常信息

1、服务“CJ.Demo.Conso.WcfService.EmployeeMngService”有零个应用程序(非基础结构)终结点。这可能是因为未找到应用程序的配置文件,或者在配置文件中未找到与服务名称匹配的服务元素,或者服务元素中未定义终结点。 
<service name="CJ.Demo.Conso.WcfService.EmployeeMngService"> 整个类的路径未设置正确

2、IIS部署WCF出现‘当前已禁用此服务的元数据发布’ 
a)如果用4.0框架需要在IIS中将asp.net版本设置为4.0 

b )出现提示原因分析:当机器上安装了asp.net 2.0和4.0时,需分别建立应用程序池,并在部署虚拟目录时分属于不同应用程序池。

1) 建立不同应用池 
 
   2) 将4.0虚拟目录应用到4.0的应用程序池 

//name属性值必须置空

<behavior name="" >
          <!-- 将下列元素添加到服务行为配置中。 -->
          <serviceMetadata httpGetEnabled="true" />
</behavior>

3、没有与给定的地址“”匹配的协议绑定。协议绑定在 IIS 或 WAS 配置中的站点级别配置。 
http://blog.csdn.net/jhhja/article/details/6226307 
正确的:address单独放置

<baseAddresses> 
<add baseAddress="http://localhost:8001/"/> 
</baseAddresses> 
</host> 
<endpoint address="HelloService" binding="wsHttpBinding" contract="WCFService.IHelloService"> 
</endpoint>

4、如果在配置中将“system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled”设置为 true,则需要终结点指定相对地址。如果在终结点上指定相对侦听 URI,则该地址可以是绝对地址。若要解决此问题,请为终结点“http://localhost/Service1.svc”指定相对 URI。

解决方法:

<endpoint address="" //此处只拿出终结点地址部分 
将终结点address改为空

原因:

IIS部署的时候,默认会有一个基地址Baseaddress,这个是根据你WCF服务程序的配置生成的。

如果你打算提供完成的地址格式,但是这个完整的地址格式 和Baseaddress 不匹配,比如端口不一样,就会出错。

address换成“”,目的就是使用默认的Baseaddress+“”。避免了你自己设置的和Baseaddress 不匹配的问题。

5、不允许使用此方法

服务器端方法定义中UriTemplate的路径和客户端访问的方法不一致,必须如下

服务端: [WebInvoke(UriTemplate = "Add", Method = "POST")] 
客户端:var urlTemp = "http://localhost:3721/EmployeeMngService.svc/Add"; 
UriTemplate 的值必须和svc/Add后面的add相同

6、在 ServiceModel 客户端配置部分中,找不到引用协定“ServiceReference1.IEmployeeMng”的默认终结点元素。这可能是因为未找到应用程序的配置文件,或者是因为客户端元素中找不到与此协定匹配的终结点元素 
ServiceReference1。EmployeeMngClient em = new ServiceReference1.EmployeeMngClient(); 通过添加引用使用服务时,客户端endpoint终结点contract的设置,不是和服务器的contract相同,而是设置为和引用服务相关ServiceReference1.IEmploye1eMngaddress也不能设为和服务端address相同,而要设置为address=http://localhost:3721/EmployeeMngService.svc

7、此工厂上启用了手动寻址,因此发送的所有消息都必须进行预寻址。

(这个问题花了我一天时间,网上完全没有解决方案。且服务通过网址访问正常,而通过客户端访问就会出现这个问题,归根结底还是配置问题,暂时不知道为什么这样)

--报错

<client>
      <endpoint name="employeeService"
                address="http://127.0.0.1:3721/employees" 
            
                binding="webHttpBinding" 
                contract="Artech.WcfServices.Service.Interface.IEmployees"/>
    </client>

--正常

<behaviors>
      <endpointBehaviors>
        <behavior name="webBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>      
    </behaviors>
    <client>
      <endpoint name="employeeService"
                address="http://127.0.0.1:3721/employees" 
                behaviorConfiguration="webBehavior"
                binding="webHttpBinding" 
                contract="Artech.WcfServices.Service.Interface.IEmployees"/>
    </client>

8、部署IIS 返回304.1找不到网页
IIS-->虚拟目录-->应用程序设置-->创建应用程序(执行权限选择【脚本和可执行文件】)、应用程序池选择4.0

原文链接:http://www.cnblogs.com/gossip/archive/2012/03/05/2380918.html

时间: 2024-07-28 12:39:37

WCF异常信息的相关文章

WCF异常信息:由于内部错误,服务器无法处理该请求

"WCF异常信息:由于内部错误,服务器无法处理该请求",考评系统实现的过程中,提示出这样的错误,你如何调试,对呀面对如此抽象含糊的提示,跟没有提示一样,表示很无语. 这其实是我们自己把错误提示给遮挡住了,我们看下面配置文件system.serviceModel节点 <system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <!-- 为避免泄漏元数据信息,请在部署前

使用svctraceviewer查看WCF服务异常信息

这两天遇到一个问题,调用一个WCF服务的时候,服务器端正常的返回了数据,但是客户端却遇到了一场 System.ServiceModel.CommunicationException: The underlying connection was closed: The connection was closed unexpectedly. 直接调试查看堆栈信息也没有弄清楚怎么回事.最后上网搜了一下,发现一个获取WCF运行信息的工具. 1.打开服务器端wcf服务的web.config配置文件并添加如

打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 &lt;serviceDebug&gt; 配置行为)以便将异常信息发送回

在调试wcf程序的时候,有时会遇到下面的错误: System.ServiceModel.FaultException: 由于内部错误,服务器无法处理该请求.有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或在打开每个 Microsoft .NET Framework 3.0 SDK 文档的跟踪的同时检查服务器跟踪

PHP 错误与异常 笔记与总结(14 )记录和发送异常信息

当发生异常时,把异常信息记录到日志文件中: 1 <?php 2 header('content-type:text/html; charset=utf-8'); 3 class LogException extends Exception{ 4 public function __construct($message = null, $code = 0){ 5 parent::__construct($message, $code); 6 error_log($this->getMessage

Atitit mysql 存储过程捕获所有异常,以及日志记录异常信息

1.1. 异常的处理模式exit  continue undo模式 1 1.2. 捕获所有异常使用        DECLARE continue HANDLER FOR   sqlexception 1 1.3. 捕获特定异常使用HANDLER FOR  errorcode 2 1.4. 记录异常到日志表,获取异常代码和异常信息 2 1.5. 抛出自定义异常 3 2. 程序语言中捕获sql自定义抛出的异常 3 2.1. 代码 3 3. 集合的循环loop while repeat模式 4 3.

VS开发ArcEngine时的一个异常信息——“ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components.”

问题描述:程序报错"ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components." 解决方法:打开program.cs. 把ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); 放到Application.SetCompatibleTextRender

JAVA之IO技术-将java程序的异常信息保存在文件中

package ioTest.io2; import java.io.FileNotFoundException; import java.io.PrintStream; import java.util.Properties; /* * 将应用程序的异常信息输出到指定的log文件中 */ public class ExceptionToFile { public static void main(String[] args) throws FileNotFoundException { int

Log4Net在MVC下的配置以及运用线程队列记录异常信息

Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运行过程的步骤.成功失败记录下来,将关键性的数据记录下来分析系统问题所在.Log4J.对于网站来讲,不能把异常信息显示给用户,异常信息只能记录到日志,出了问题把日志文件发给开发人员,就能知道问题所在. 配置Log4Net环境 (1)新建一个WebApplication (2)添加对log4net.dl

python打印详细的异常信息

#!/usr/bin/env python #coding=utf-8 import traceback try: 1/0 except Exception, e: print e print traceback.format_exc() python打印详细的异常信息,布布扣,bubuko.com