' System.ServiceModel.Diagnostics.TraceUtility'在WCF中引发了一个例外

时间:2016-02-13 14:25:29

标签: c# wcf

我是WCF的新手,我正在通过创建示例应用程序进行自学。这是一个非常简单的应用程序的代码,它会在注释

下面的行后面抛出一个异常形式
namespace ConsoleAppHost
{
    class Program
    {
        public static void Main()
        {    
            //Exception thorwing from following line
            using (ServiceHost host = new ServiceHost(typeof(ReportService.ReportService))) //Exception thorwn from this
            {
                host.Open();
                Console.WriteLine("Host started @ " + DateTime.Now.ToShortDateString());
                Console.ReadLine();
            }
        }
    }
}

这是来自主机(同一控制台应用程序)的app.config文件。请善意告诉我问题在哪里?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>    
    <behaviors>
      <serviceBehaviors>
        <behavior name="mexBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
  <services>
    <service name="ReportService.ReportService" behaviorConfiguration="mexBehavior">
      <endpoint address="ReportService" binding="netTcpBinding" bindingconfiguration="" contract="ReportService.IReportService"></endpoint>
      <host>
        <baseAddresses>
          <add baseAddress ="http://localhost:8080/"/>
          <add baseAddress ="net.tcp://localhost:8090/"/>
        </baseAddresses>
      </host>
    </service>
  </services>
</configuration>

以下是您真正感兴趣的源代码。

https://onedrive.live.com/redir?resid=F1C4404429DCCB7F!17480&authkey=!ABb-N4DexoIFGqw&ithint=file%2czip

谢谢。

1 个答案:

答案 0 :(得分:6)

您的代码存在两个问题。

  1. <services>部分在配置文件中的位置:它必须位于<system.serviceModel>内。
  2. bindingconfiguration属性拼写错误。必须是bindingConfiguration
  3. 以下是您可以找到的方法:确实会在您指出的行中抛出异常。这是TypeInitializationException。如果您深入查看InnerException字段,那么您最终可以看到“无法识别的属性”等简单消息。