2010-07-05 89 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

相关问题