2010-07-05 99 views
0

我有一個C#Windows服務,它偵聽HTTP端口並在收到HTTP GET請求時觸發一個動作。該操作通常是駐留在同一臺計算機上的應用程序(運行Windows XP Professional或更高版本)。C#中的SQL消息偵聽器#

我現在需要C#Windows服務來監聽來自JDBC客戶端的傳入SQL查詢,並再次觸發一個操作,執行一個應用程序。我正在尋找一些幫助來實現一個簡單的「偵聽器」來接收來自JDBC客戶端的SQL查詢,並在向JDBC客戶端返回響應之後觸發該操作。有沒有我可以參考的資源/示例代碼?我沒有選擇在目標機器上安裝任何數據庫服務器(SQL Express,MySQL等)。

XML配置需要的樣子 -

<XmlConfiguration> 
    <SQLListenerPort>18781</SQLListenerPort> 
    <HttpRootUrl>http://127.0.0.1:8731/</HttpRootUrl> 
    <HttpsRootUrl>https://127.0.0.1:8732/</HttpsRootUrl> 
    <ServeHttpsRequests>true</ServeHttpsRequests> 
    <Triggers> 
     <!-- Sample triggers for testing, please update for production deployment --> 
     <Trigger> 
     <URL>http://127.0.0.1:8731/CustomerID</URL> 
     <Action>MyExecutable.exe CustomerID</Action> 
     </Trigger> 
     <Trigger> 
     <SQL>SELECT * FROM A/SQL> 
     <Action>MyExecutable.exe A</Action> 
     </Trigger> 
     <Trigger> 
     <SQL>SELECT * FROM B</SQL> 
     <Action>MyExecutable.exe B</Action> 
     </Trigger> 
     <Trigger> 
     <URL>https://127.0.0.1:8732/CASE1/CustomerID/MachineID</URL> 
     <Action>TEST.exe CustomerID MachineID</Action> 
     </Trigger> 
    </Triggers> 
</XmlConfiguration> 

行爲 -

C#的Windows服務接收SQL查詢 'SELECT * FROM A',查找觸發器地圖和與火災可執行論點(即'A')。

謝謝你的時間。

indyfromoz

+0

你提到你的問題相當多的不同的東西哪一部分(S)你有麻煩用? 。 – 2010-07-05 22:29:12

+0

@Martin - C#Windows服務需要偵聽來自可配置端口上的JDBC客戶端的傳入SQL查詢,並對這些查詢做出反應。謝謝,indyfromoz – indyfromoz 2010-07-06 04:43:12

回答

0

JDBC是一個統一通用管理下的各種數據庫的API,用一個單一的API和接口的API。沒有JDBC協議,由JDBC加載的每個特定驅動程序都將使用自己的本地協議來與數據庫進行內部訪問。因此,您不能在'JDBC'調用的服務中偵聽,因爲沒有'JDBC調用'這樣的事情。如果您想接收SQL請求並返回結果集,則必須實現JDBC驅動程序的協議之一,例如對於SQL Server驅動程序,例如TDS。實施TDS'服務'意味着你必須編寫一個TDS網關,這是一個完全無用的練習,因爲你可以通過簡單暴露服務器本身的TDS監聽端口(忽略安全細節...)來實現這個目標。

您可以看到的是接收普通的HTTP Web服務調用(SOAP或REST)並將它們作爲普通Web服務請求處理,並將結果作爲SOAP響應或RESTful HTTP響應返回。或者您可以簡單地公開一個OData服務,該服務可以創建straight from an EF project。但客戶端必須像任何WWW服務一樣與此服務交互,不存在JDBC或其他數據庫技術堆棧涉及客戶端。

+0

非常感謝您的幫助。我們已經有一個正在生產的HTTP/HTTPS接口,所以我們不需要(現在)實現SOAP/REST。感謝指向TDS的指針。我需要的只是偵聽端口並從傳入的請求中提取SQL查詢,然後發回有效的響應。我試圖找出通過線路發送/接收到SQL服務器的SQL查詢的模式/格式。 – indyfromoz 2010-07-06 04:52:07

相關問題