0

ログを確認できるように、接続したいWCFサービスが機能しています。そこで、.configファイルを追加しましたが、サービスがまったく開始されません。

私のコードでは、次のことを行います。

private ServiceHost _myHost;

...。

        _myHost= new ServiceHost(typeof (MyType), new Uri(baseUri));
        _myHost.AddServiceEndpoint(typeof (myInterface), new NetNamedPipeBinding(), hostName);
        _myHost.Open();

そして、前述のように、これは.configファイルがない場合に機能します。ただし、ログを表示するには、次のような.configファイルを追加する必要があります。

   <system.diagnostics>
  <sources>
     <source propagateActivity="true" name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
        <listeners>
           <add type="System.Diagnostics.DefaultTraceListener" name="Default">
              <filter type="" />
           </add>
           <add initializeData="c:\logs\Traces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
              name="traceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
              <filter type="" />
           </add>
        </listeners>
     </source>
  </sources>
</system.diagnostics>
<system.serviceModel>
  <diagnostics>
     <messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true"
        logMessagesAtTransportLevel="true" />
     <endToEndTracing activityTracing="true" messageFlowTracing="true" />
  </diagnostics>
</system.serviceModel>

ロガーFailed to open System.ServiceModel.ServiceHostで発生するエラーは、インスタンスの作成時に発生しますServiceHost。では、なぜロギング構成を追加しても違いが生じるのでしょうか。

アップデート

ロガーはServiceTraceViewerであり、構成をスローするとエラーが表示されます。したがって、ロギングは機能しており、コードの機能を壊しているだけです。.configを使用する場合は、構成にエンドポイントが必要であるとどこかで読みました。それは本当ですか?もしそうなら、私はコードを介してそれをしているので、これに対する回避策はありますか?

4

0 に答える 0