1

COM Visible アセンブリを使用して、Windows サービスでホストされている WCF サービスを使用する必要があります。

Windows サービスでホストされている WCF サービスがあり、COM Visible アセンブリでサービスを使用する必要があります。COM + アプリケーションを作成し、それにサービス参照を追加しました。以下はapp.config.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <netTcpBinding>
                <binding name="TcpEndpoint" closeTimeout="00:01:00" openTimeout="00:01:00"
                    receiveTimeout="00:10:00" sendTimeout="00:01:00" transactionFlow="false"
                    transferMode="Buffered" transactionProtocol="OleTransactions"
                    hostNameComparisonMode="StrongWildcard" listenBacklog="10"
                    maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
                    maxReceivedMessageSize="65536">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="None">
                        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
                        <message clientCredentialType="Windows" />
                    </security>
                </binding>
            </netTcpBinding>
        </bindings>
        <client>
            <endpoint address="net.tcp://serverMachine:9600/DocumentsWcfService/Tcp"
                binding="netTcpBinding" bindingConfiguration="TcpEndpoint"
                contract="MysWcfService.IMysWcfService" name="TcpEndpoint" />
        </client>
    </system.serviceModel>
</configuration>

このアセンブリを従来の ASP プロジェクトで使用し、サービスを初期化するメソッドを呼び出すと、次のようなエラーが発生します。しかし、コンソール アプリケーションで同じ WCF サービスを参照すると、正常に動作します。COM 可視アプリケーションで使用するために必要な特定の変更はありますか。

ServiceModel クライアント構成セクションで、コントラクト 'MyWcfService.IMysWcfService' を参照する既定のエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素に見つからなかったためである可能性があります

4

2 に答える 2