Respondido Erro ao publicar WCF no IIS

  • domingo, 22 de abril de 2012 02:53
     
      Contém Código

    Boa noite, estou com um problema de metadata.

    Quando rodo o WCF direto do Visual Studio, pela Cassini, consigo adicionar a "Service Reference" perfeitamente nas aplicações que vão consumir o serviço(WPF e WP), o intellisense aparece perfeitamente e tudo consegue ser instanciado.

    Quando eu faço o deploy e hospedo no IIS e faço o "Service Reference" nas duas aplicações ele é adicionado perfeitamente porém o intellisense não aparece e não consigo trabalhar com o servidor, qual a possível causa desse problema?

    segue meu web.config:

    <?xml version="1.0"?>
    <configuration>
        <system.serviceModel>
            <services>
                <service name="Service" 
                         behaviorConfiguration="behavior">
                    <host>
                        <baseAddresses>
                            <add baseAddress="http://localhost:7558/allis" />
                        </baseAddresses>
                    </host>
                    
                    <endpoint address="mex"
                              binding="mexHttpBinding"
                              contract="IMetadataExchange" />
                    <endpoint address=""
                              binding="wsDualHttpBinding"
                              contract="Contracts.IConnection" />
                    <endpoint address=""
                              binding="wsDualHttpBinding"
                              contract="Contracts.IMessage" />
                    <endpoint address=""
                              binding="wsDualHttpBinding"
                              contract="Contracts.IAppOperations"/>
                    <endpoint address=""
                              binding="wsDualHttpBinding"
                              contract="Contracts.IOperations"/>
                </service>
            </services>
    
            <behaviors>
                <serviceBehaviors>
                    <behavior name="behavior">
                        <serviceThrottling maxConcurrentCalls="500" 
                                           maxConcurrentSessions="200" 
                                           maxConcurrentInstances="200"/>
                        <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
                        <serviceDebug includeExceptionDetailInFaults="true"/>
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            
        </system.serviceModel>
        
        <system.web>
            <compilation debug="true"/>
        </system.web>
    </configuration>

    Alguém sabe algum provável motivo para esse comportamento estranho?

    dl;tr: Service Reference do WCF funciona na Cassini mas não no IIS..


    • Editado gabrielpkt domingo, 22 de abril de 2012 02:57
    •  

Todas as Respostas

  • segunda-feira, 23 de abril de 2012 20:08
     
     

    Hospedado no IIS você consegue visualizar o serviço via Browser? "Por causa do mex".

    Se sim:

    Adicionando a QueryString /?wsdl você consegue ver todos os métodos em questão?

    Acredito que esteja o erro em um desses itens e que por sua vez seja erro de configuração do IIS. Se isso não responder, publique para nós uma imagem da configuração do IIS "propriedades da Application, de autenticação e de tipos de Site Bindings.

  • quarta-feira, 25 de abril de 2012 13:21
     
     Respondido

    bem, achei o problema, vamos la:

    O meu website roda dentro de um pool específico e o Identity (configurações avançadas) é configurado automaticamente para o ApplicationPoolIdentity, e esse usuário não possui direitos de escrita dentro da pasta C:/Windows/Temp, da onde ele carrega algumas DLLs, uma simples permissão de escrita e problema resolvido.

    • Marcado como Resposta gabrielpkt quarta-feira, 25 de abril de 2012 13:21
    •