共用方式為


設定 Oracle 資料庫的用戶端系結

產生 WCF 用戶端類別之後,您可以建立 WCF 用戶端 (實例) ,並叫用其方法來取用 Oracle 資料庫配接器。 如需如何產生 Microsoft BizTalk Adapter for Oracle Database 所公開作業的 WCF 用戶端類別和協助程式程式碼的相關資訊,請參閱 產生 WCF 用戶端或 Oracle 資料庫解決方案成品的 WCF 服務合約

若要建立 WCF 用戶端,您必須指定端點位址和系結。 端點位址必須包含有效的 Oracle 連線 URI,而且系結必須是 Oracle DB 系結的實例, (OracleDBBinding) 。 如需 Oracle 連線 URI 的詳細資訊,請參閱 建立 Oracle 資料庫連接 URI。 我們建議您不要將使用者認證指定為連線 URI 的一部分。 您可以改用 WCF 用戶端的 ClientCredentials 屬性,如本主題所述。

您可以在程式碼或組態檔中指定 Oracle DB 系結和端點位址。 當您使用 [新增配接器服務參考 Visual Studio 外掛程式] 來產生 WCF 用戶端類別時,也會為您的專案建立組態檔 (app.config) 。 此檔案包含組態設定,這些組態設定會反映系結屬性和連接資訊 (,但當您使用 [新增配接器服務參考外掛程式] 連線到 Oracle 資料庫時所指定的認證) 除外。

在程式碼中指定系結和端點位址

下列程式碼示範如何在程式碼中指定系結和端點位址來建立 WCF 用戶端。 最好是使用 WCF 用戶端的 ClientCredentials 屬性來指定 Oracle 認證,而不是在提供給端點位址的連線 URI 中。

// A WCF client that targets the /SCOTT/EMP table is created  
// by using a binding object and endpoint address  
OracleDBBinding odbBinding = new OracleDBBinding();  
EndpointAddress odbAddress = new EndpointAddress("OracleDb://ADAPTER");  
  
SCOTTTableEMPClient empClient = new SCOTTTableEMPClient(odbBinding, odbAddress);  
  
empClient.ClientCredentials.UserName.UserName = "SCOTT";  
empClient.ClientCredentials.UserName.Password = "TIGER";  
  
empClient.Open();  

在組態檔中指定系結和端點位址

下列程式碼示範如何在 app.config 檔案中指定系結和端點位址,以建立 WCF 用戶端。

// A WCF client that targets the /SCOTT/EMP table is created  
// by specifying the client endpoint information in app.config  
SCOTTTableEMPClient empClient = new SCOTTTableEMPClient("OracleDBBinding_SCOTT.Table.EMP");  
  
empClient.ClientCredentials.UserName.UserName = "SCOTT";  
empClient.ClientCredentials.UserName.Password = "TIGER";  
  
empClient.Open();  

下列 XML 顯示新增配接器服務參考外掛程式為 EMP 資料表建立的組態檔。 此檔案包含上述範例中所參考的用戶端端點組態。

\<?xml version="1.0" encoding="utf-8"?>  
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">  
    \<system.serviceModel>  
        <bindings>  
            <oracleDBBinding>  
                <binding name="OracleDBBinding" closeTimeout="00:01:00" openTimeout="00:01:00"  
                    receiveTimeout="00:10:00" sendTimeout="00:01:00"  
                    dataFetchSize="65536" metadataPooling="true" statementCachePurge="false"  
                    statementCacheSize="10" longDatatypeColumnSize="32767" pollingStatement=""  
                    postPollStatement="" pollingInterval="500" useOracleConnectionPool="false"  
                    minPoolSize="1" maxPoolSize="100" incrPoolSize="5" decrPoolSize="1"  
                    connectionLifetime="0" transactionIsolationLevel="ReadCommitted"  
                    enablePerformanceCounters="false" acceptCredentialsInUri="false"  
                    enableBizTalkCompatibilityMode="false" />  
            </oracleDBBinding>  
        </bindings>  
        <client>  
            <endpoint address="oracledb://adapter/" binding="oracleDBBinding"  
                bindingConfiguration="OracleDBBinding" contract="SCOTTTableEMP"  
                name="OracleDBBinding_SCOTT.Table.EMP" />  
        </client>  
    \</system.serviceModel>  
</configuration>  

如果專案有多個 WCF 用戶端,組態檔中會定義多個用戶端端點專案。 每個 WCF 用戶端專案都會根據其系結組態和目標 Oracle 資料庫成品,具有唯一的名稱;例如,「OracleDBBinding_SCOTT。Table.EMP」。 如果您多次連線以在專案中建立 WCF 用戶端,將會建立多個系結組態專案,每個連線各建立一個。 這些系結組態專案會以下列方式命名:OracleDBBinding1、OracleDBBinding2 等等。 在特定連接期間建立的每個用戶端端點專案都會參考在該連接期間建立的系結專案。

另請參閱

使用 WCF 服務模型開發 Oracle 資料庫應用程式
產生 Oracle 資料庫解決方案成品的 WCF 用戶端或 WCF 服務合約
建立 Oracle 資料庫連線 URI
使用 WCF 通道模型開發 Oracle 資料庫應用程式