补充一个关于COM+配置的Check List吧。

Windows的默认安全性越来越高,很多原来跟RPC相关的网络访问都默认为false了。搞到很多程序莫名其妙的就不能运行,特别是MSDTC这个支持COM+的服务。当访问本机数据库是一点问题都没有,但是一遇上需要访问远程数据库服务器的时候就出问题了。经常配老半天都配不好,挺烦人的。现在配多了慢慢有了些心得,免得以后还继续碰壁,还是写个Check List吧!

  1. 保证客户机和数据库服务器机器都安装了MSDTC服务并且已经启动
  2. 保证客户机和服务器机之间能够双向根据机器名能够Ping 通,如果没法ping通的时候,需要在两台机器的host文件上都加上对方的IP解析。
  3. 客户机设置注册表项HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC里面增加DwordSubKey ,TurnOffRPCSecurity并且设置为1
  4. 如果MSDTC下面还有Subkey AllowOnlySecureRpcCalls的话,就要将该项的值设置为0
  5. 组件服务里面不需要将MSDTC的安全属性的"网络DTC访问"钩上,对应注册表项是:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC/Security/NetworkDtcAccess设置为1
  6. 然后还要将允许出站允许入站钩上,对应的注册表项目是:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC/Security/NetworkDtcAccessInbound和NetworkDtcAccessOutbound都设置为1
  7. 如果是Web程序的话,还需要注意运行Web程序的帐号能够有权访问你的COM+组件,方法是在组件服务-计算机-我的电脑-COM+应用程序下面找到你的组件,然后增加相应的角色。

这个Check List适用于Windows XP SP2 和Windows 2003 SP1的。

这里有个连接时关于Windows XP SP2关于MSDTC服务配置变化的文档,大家可以参考一下

 

 

http://www.microsoft.com/technet/prodtechnol/winxppro/zh-chs/maintain/sp2otech.mspx 

 

http://www.microsoft.com/technet/prodtechnol/winxppro/zh-chs/maintain/sp2otech.mspx 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的Python串口助手的实现,它使用了PyQt5库来实现GUI界面和串口通信功能: ```python import sys import serial import serial.tools.list_ports from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox from PyQt5.QtCore import QTimer from PyQt5.QtGui import QTextCursor from ui_mainwindow import Ui_MainWindow class MainWindow(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.Com_Dict = {} self.ser = serial.Serial() self.timer = QTimer(self) self.timer.timeout.connect(self.receive_data) self.pushButton_open.clicked.connect(self.port_open) self.pushButton_close.clicked.connect(self.port_close) self.pushButton_send.clicked.connect(self.send_data) self.pushButton_clear.clicked.connect(self.textBrowser_receive.clear) self.port_check() def port_check(self): # 检测所有存在的串口,将信息存储在字典中 port_list = list(serial.tools.list_ports.comports()) self.comboBox_port.clear() for port in port_list: self.Com_Dict["%s" % port[0]] = "%s" % port[1] self.comboBox_port.addItem(port[0]) # 无串口判断 if len(self.Com_Dict) == 0: self.comboBox_port.addItem("无串口") def port_open(self): # 打开串口 self.ser.port = self.comboBox_port.currentText() self.ser.baudrate = int(self.comboBox_baudrate.currentText()) self.ser.bytesize = int(self.comboBox_databit.currentText()) self.ser.stopbits = int(self.comboBox_stopbit.currentText()) self.ser.parity = self.comboBox_parity.currentText() try: self.ser.open() except Exception as e: QMessageBox.warning(self, "警告", str(e)) return None if self.ser.isOpen(): self.pushButton_open.setEnabled(False) self.pushButton_close.setEnabled(True) self.comboBox_port.setEnabled(False) self.comboBox_baudrate.setEnabled(False) self.comboBox_databit.setEnabled(False) self.comboBox_stopbit.setEnabled(False) self.comboBox_parity.setEnabled(False) self.timer.start(100) def port_close(self): # 关闭串口 self.timer.stop() self.ser.close() self.pushButton_open.setEnabled(True) self.pushButton_close.setEnabled(False) self.comboBox_port.setEnabled(True) self.comboBox_baudrate.setEnabled(True) self.comboBox_databit.setEnabled(True) self.comboBox_stopbit.setEnabled(True) self.comboBox_parity.setEnabled(True) def send_data(self): # 发送数据 if self.ser.isOpen(): send_data = (self.textEdit_send.toPlainText() + '\n').encode() self.ser.write(send_data) def receive_data(self): # 接收数据 try: num = self.ser.inWaiting() except Exception as e: self.timer.stop() QMessageBox.warning(self, "警告", str(e)) return None if num > 0: data = self.ser.read(num) self.textBrowser_receive.insertPlainText(data.decode()) self.textBrowser_receive.moveCursor(QTextCursor.End) if __name__ == '__main__': app = QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_()) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值