Exceção na criação de um serviço WCF usando o msmqintegationbinding
-
21-09-2019 - |
Pergunta
Minha máquina é Windows 7 Ultimate (64 bits). Eu instalei o MSMQ e verifiquei se está funcionando bem (execute alguns códigos de amostra para MSMQ).
Quando tento criar um serviço WCF usando o msmqintegrationbinding classe, recebo a exceção abaixo:
"Ocorreu um erro ao abrir a fila: a fila não existe ou você não possui permissões suficientes para executar a operação. (-1072824317, 0xc00e0003). A mensagem não pode ser enviada ou recebida da fila. Verifique se o MSMQ está instalado e em execução. Verifique também que a fila está disponível para abertura com o modo de acesso e autorização necessários. "
Estou executando o Visual Studio no modo Administrador e concedem permissão explicitamente a mim mesma por meio de um URL ACL usando: netsh http adicione urlacl url =http: //+: 80/ Usuário = Domínio Usuário
Abaixo está o código:
public static void Main()
{
Uri baseAddress = new Uri(@"msmq.formatname:DIRECT=OS:AJITDELL2\private$\Orders");
using (ServiceHost serviceHost = new ServiceHost(typeof(OrderProcessorService), baseAddress))
{
MsmqIntegrationBinding serviceBinding = new MsmqIntegrationBinding();
serviceBinding.Security.Transport.MsmqAuthenticationMode = MsmqAuthenticationMode.None;
serviceBinding.Security.Transport.MsmqProtectionLevel = System.Net.Security.ProtectionLevel.None;
//serviceBinding.SerializationFormat = MsmqMessageSerializationFormat.Binary;
serviceHost.AddServiceEndpoint(typeof(IOrderProcessor), serviceBinding, baseAddress);
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
}
Você pode por favor ajudar?
Solução
Certifique -se de criar a fila "Ordens" no MSMQ.
No Windows Server 2008, você pode fazê -lo no gerenciador do servidor (clique com o botão direito do mouse no meu computador e selecione Gerenciar) e, em seguida, recursos -> filas de mensagens -> filas privadas. Clique com o botão direito do mouse nas filas particulares e adicione sua fila "pedidos" lá.
Você também pode querer verificar o artigo de Nicholas Allen: Diagnosticando erros de fila comuns. Isso sugere que seu erro só pode ser: "Que a fila não existe, ou talvez você tenha especificado o nome da fila incorretamente". Todos os outros casos de erro teriam lançado uma exceção diferente.