Obtendo erro ao implementar o serviço da Web no iis 7.5

3

Eu pedi ao departamento de programação para testar a implantação de um dos aplicativos. Por tudo que eu sei sobre o aplicativo, é que é um wcf código c # webservice para um aplicativo wpf. Eles me disseram que tentaram colocar o certificado diretamente no webservice (para evitar a dor na bunda para registrar o certificado ssl e salvá-los em cada aplicativo cliente).

Até agora não há problema comigo. Mas ai o pequeno truque.

Eu tenho tentado implantar a coisa em localhost (para ter certeza sobre o processo para fazer isso), e tudo está bom (obtive o êxito svc loading page com esta mensagem):

sucesso do blabla

svcutil.exe http://###deployment.eslan2.local/Service###.svc?wsdl

C #

class Test
{
    static void Main()
    {
       //how to blabla
       client.Close();
    }
}

mas quando eu tento implantar o serviço web no meu servidor web IIS (ws2K8R2 com IIS7.5), recebo esta mensagem de erro desagradável e não muito útil:

Server Error in '/' Application.
The specified network password is not correct.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Security.Cryptography.CryptographicException: The specified network password is not correct.

Erro de origem:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[CryptographicException: The specified network password is not correct.]
   System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +41
   System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromBlob(Byte[] rawData, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) +0
   System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) +335
   System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData) +101
   Effect.ServiceModel.ServiceBehaviorHandlerAttribute.ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) +623

[ServiceModelException: An error occurs during service management.]
   Effect.ServiceModel.ServiceBehaviorHandlerAttribute.ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase) +1782
   System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost) +3565
   System.ServiceModel.ServiceHostBase.InitializeRuntime() +82
   System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +64
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +789
   System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +287
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +1132

Passei 3 dias olhando pela rede para encontrar uma resposta, mas nada valioso até agora.

Eu tenho pensado que não é do meu servidor, mas o código que o erro veio.

    
por Anarko_Bizounours 20.08.2012 / 16:11

1 resposta

1

É uma mensagem de erro bastante útil, na verdade.

Essencialmente, o aplicativo não está sendo iniciado porque uma "senha" não está correta. No entanto, a senha é a parte confusa porque é mais provável que seja uma impressão digital do certificado e não uma senha verdadeira. O primeiro rastreamento de pilha aponta para o provedor de criptografia .NET que está tentando ler um certificado X509.

Parece que seu serviço da web está configurado para usar certificados para autenticação. Potencialmente entre o servidor e o cliente, de que não posso ter certeza. Independentemente disso, parece que você precisa dar uma olhada e ver se há, de fato, um certificado em uso em seu ambiente de desenvolvimento. É possível que este certificado não seja confiável em sua caixa de produção ou não esteja carregado corretamente.

É onde eu começaria e iria a partir daí. É difícil saber exatamente o que você está tentando fazer ou o que seu código está fazendo. No geral, parece ser um problema de configuração do aplicativo, que este site pode ser minimamente útil na resolução. Se não for um certificado, peça a um moderador que migre a pergunta para o StackOverflow, onde você poderá obter assistência mais precisa do WCF.

    
por 20.08.2012 / 16:29