如何在WCF中使用MSMQ?
我可以使用许多WCF绑定,除了如何在WCF中使用MSMQ?,wcf,msmq,netmsmqbinding,Wcf,Msmq,Netmsmqbinding,我可以使用许多WCF绑定,除了netMsmqBinding。我得到的只是: CommunicationObjectFaultedException:“通信对象System.ServiceModel.ServiceHost无法用于通信,因为它处于故障状态。” 在System.ServiceModel.Channels.CommunicationObject.Close处(TimeSpan超时) 我在安装了以下功能的WindowsServer2008R2中尝试了它 消息队列 消息队列服务 消息队列
netMsmqBinding
。我得到的只是:
CommunicationObjectFaultedException:“通信对象System.ServiceModel.ServiceHost无法用于通信,因为它处于故障状态。”
在System.ServiceModel.Channels.CommunicationObject.Close处(TimeSpan超时)
我在安装了以下功能的WindowsServer2008R2中尝试了它
- 消息队列
- 消息队列服务
- 消息队列服务器
- 消息队列触发器
- HTTP支持
- 多播支持
- 消息队列DCOM代理
namespace MyCompany.Services
{
[ServiceContract(Name = "ServiceName",
Namespace = "http://MyCompany/ServiceName")]
public interface IServiceName
{
[OperationContract(IsOneWay = true)]
void Insert(MyData[] data);
}
[DataContract]
public class MyData
{
[DataMember]
public DateTime DateTime { get; set; }
[DataMember]
public double Lat { get; set; }
[DataMember]
public double Lon { get; set; }
[DataMember]
public TimeSpan Timespan { get; set; }
[DataMember]
public Guid Id { get; set; }
[DataMember(IsRequired = false)]
public int? Category { get; set; }
}
}
我的app.config包含
<endpoint
address="net.msmq://localhost/private/ServiceName"
binding="netMsmqBinding"
contract="MyCompany.Services.IServiceName"
bindingConfiguration="tolerant"
behaviorConfiguration="tolerant"
/>
及
最好的起点是Tom Hollander的三篇博文:
查看参考资料,看看这是否有助于您进一步提高一两步-如果没有,我们将不得不从您那里获得更多信息 我没有按照帖子中的描述安装MSMQ Active Directory域。我希望它能在没有安全保护的情况下工作。我最终安装了它,但没有用。我想我会停止尝试在Windows服务上托管它,并最终将其移动到IIS。
<netMsmqBinding>
<binding name="tolerant"
maxReceivedMessageSize="2147483647"
>
<readerQuotas maxArrayLength="2147483647" />
<security mode="None"/>
</binding>
</netMsmqBinding>