问题标签 [msmq-wcf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1665 浏览

wcf - 如何让 WCF 服务在 IIS 中连续运行?

我编写了一个小型 wcf 服务应用程序,它从 msmq 读取消息。并在 IIS-7 中托管 wcf 服务。问题是我只有在 IIS 中单击浏览按钮时才能阅读该消息。没有引用此服务 uri 的客户端应用程序。我需要 wcf 服务始终自动连续运行。

是否可以在没有任何用户交互的情况下连续运行托管在 IIS 中的 WCF 服务?

0 投票
1 回答
215 浏览

wcf - 我的 WCF 服务如何从不可用的消息队列中恢复?

我有一个从 Microsoft 消息队列 ( netMsmqBinding) 接收消息的 WCF 服务。

如果消息队列不可用,我希望我的服务能够恢复。我的代码应该无法打开服务,但在延迟后重试。

当队列不可用时,我有代码来识别错误:

所以这应该很简单:我调用ServiceHost.Open(),捕获这个异常,等待一两秒钟,然后重复直到我的Open调用成功。

问题是,如果这个异常被抛出一次,它会继续被抛出。消息队列可能已经可用,但我正在运行的进程处于错误状态,我会继续获取消息队列,TypeInitializationException直到我关闭我的进程并重新启动它。

有没有办法解决这个问题?我可以让 WCF 原谅队列并真正尝试再听一遍吗?


这是我的服务开放代码:

这是堆栈信息。第一次抛出内部异常的堆栈跟踪是:

System.ServiceModel.Channels.MsmqQueue.GetMsmqInformation(版本和版本,布尔值和 activeDirectoryEnabled)

System.ServiceModel.Channels.Msmq..cctor()

以及外部异常堆栈的顶部条目:

System.ServiceModel.Channels.MsmqChannelListenerBase`1.get_TransportManagerTable()

System.ServiceModel.Channels.TransportManagerContainer..ctor(TransportChannelListener 监听器)

0 投票
0 回答
35 浏览

wcf - 之后如何检测空 msmq 队列并关闭 wcf 服务主机

我有 Windows 服务,它定期使用 msmq 绑定创建服务主机。我想处理来自 msmq 的所有或已定义的 o 条消息并优雅地关闭主机。但是我找不到简单的解决方案何时关闭主机或如何检测空队列以及发生什么事件。感谢您的回答。

0 投票
2 回答
775 浏览

python - Python 通过 win32com 运行 MessageQueue.Peek,如何正确超时?

对于初学者,我想说如果有人可以在这里提供帮助,你真是太不可思议了。

一般问题

我的 Python 程序需要与 MSMQ 交互。基本上,我想查看队列,如果队列中没有任何内容,则指定超时。

但是,尽管我尽了最大努力,但当队列中没有任何值时,我无法让 Peek() 等待超时间隔。 你能指出这段代码中缺少什么吗?


我当前的代码

这是我现在的代码:

我运行:inspect.getfullargspec(queue.Peek)并得到:


我尝试过的事情

这个问题:说ReceiveTimeout=timespan似乎并不能解决我的问题。

替换pythoncom.Empty似乎pythoncom.Missing不起作用

这个未回答的问题似乎与我的非常相似