0

Windows フォーム クライアントによって消費される WCF サービスを実行しています。サーバーで Windows 認証を使用していますが、WCF サービスは正常に動作しています。サービスに実装されているすべての機能は、1 つの機能を除いてクライアント アプリケーションで正常に動作しています。その機能のサービス コードを[DataContract]確認 [OperationContract]し、SvcLogViewer.exe を使用して Svc ログを確認しました。しかし、関数は を上げ続けNullReferenceExceptionます。SvcLog から見つけた例外は

The specified domain either does not exist or could not be contacted

この機能は、ローカル サーバーでは正常に機能しますが、リモート サーバーでは機能しません。私が知りたいのは、この例外が発生する理由であり、以下は私の ServiceModel コードです。

<system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="Wrabind" closeTimeout="00:05:00" openTimeout="00:05:00" sendTimeout="00:25:00">
          <textMessageEncoding/>
          <security authenticationMode="SecureConversation" includeTimestamp="true" messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
            <localClientSettings maxClockSkew="00:30:00" />
            <localServiceSettings maxClockSkew="00:30:00" />
            <secureConversationBootstrap messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10">
              <localClientSettings maxClockSkew="00:30:00" />
              <localServiceSettings maxClockSkew="00:30:00" />
            </secureConversationBootstrap>
          </security>
          <httpTransport maxBufferPoolSize="20000000" maxReceivedMessageSize="20000000" allowCookies="true" maxBufferSize="20000000" />
        </binding>
      </customBinding>
    </bindings>
    <services>
      <service behaviorConfiguration="WCoreService.Service1Behavior" name="WCoreService.Service1">
        <endpoint address="http://subdomain.domain.com/service1.svc" binding="customBinding" bindingConfiguration="Wrabind" contract="WCoreService.IService1" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WCoreService.Service1Behavior">
          <serviceMetadata httpGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment>
      <baseAddressPrefixFilters>
        <add prefix="http://subdomain.domain.com/" />
      </baseAddressPrefixFilters>
    </serviceHostingEnvironment>

  </system.serviceModel>
4

1 に答える 1

0

最後に私はそれを自分で解決しました。私が見つけることができなかったコードにいくつかの論理エラーがありましたが、どういうわけか制御フロー全体を調べてみると、その小さなエラーが見つかりました。エラーは、実際にはクライアント側で、サービス接続がまだ作成されていない場所でその障害のあるサービス関数を呼び出していたことです。コードの後半で作成されていました。そのため、その呼び出しの前に接続作成コードを障害のあるサービス関数にシフトしたところ、機能しました。同じ問題を抱えている人がこの解決策に役立つことを願っています。

于 2013-09-19T19:54:06.430 に答える