none
PUBLICANDO UM WCF DATA SERVICE NA LOCAWEB RRS feed

  • Pergunta

  • Pessoal Bom Dia!

    Estou desenvolvendo uma aplicação WEB com 4 camadas, sendo uma a UI, uma a de negócios, uma de Serviços e uma outra de Dados.

    As camadas de Serviços e Dados foram feitas com WCF e WCF Data Service respectivamente.

    Local está tudo funcionando que é uma beleza, no entanto, para ter certeza estou publicando em etapas o serviço na web, que será no domínio da sptres.com.br, hospedado na locaweb.

    Publiquei primeiramente o serviço de dados baseado na tecnologia WCF Data Service e os erros começaram a pular.

    Fui resolvendo um por um até chegar neste bendito:

    Server Error in '/PROJETOS/Services/ECC/Data' Application.

    Filename: \\?\E:\Home\sptres\Web\PROJETOS\Services\ECC\Data\web.config
    Line number: 33
    Error: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".

    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.IO.FileLoadException: Filename: \\?\E:\Home\sptres\Web\PROJETOS\Services\ECC\Data\web.config
    Line number: 33
    Error: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".



    Source Error: 
    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: 
    [FileLoadException: Filename: \\?\E:\Home\sptres\Web\PROJETOS\Services\ECC\Data\web.config
    Line number: 33
    Error: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".
    
    ]
       Microsoft.Web.Administration.Interop.IAppHostAdminManager.GetAdminSection(String bstrSectionName, String bstrPath) +0
       Microsoft.Web.Administration.WebConfigurationManager.GetSectionInternal(String siteName, String virtualPath, String sectionPath, Type sectionType) +281
       Microsoft.Web.Administration.WebConfigurationManager.GetSection(String siteName, String virtualPath, String sectionPath) +30
    
    [TargetInvocationException: Exception has been thrown by the target of an invocation.]
       System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) +0
       System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) +72
       System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +251
       System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +28
       System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +19
       System.ServiceModel.WasHosting.WebConfigurationManagerWrapper.WebConfigGetSection(String siteName, String virtualPath, String sectionName) +106
       System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.ProcessBasicAuthentication(String siteName, String virtualPath, HostedServiceTransportSettings& transportSettings) +22
       System.ServiceModel.WasHosting.MetabaseSettingsIis7V2.CreateTransportSettings(String relativeVirtualPath) +138
       System.ServiceModel.Activation.MetabaseSettingsIis.GetTransportSettings(String virtualPath) +156
       System.ServiceModel.Activation.MetabaseSettingsIis.GetAccessSslFlags(String virtualPath) +4
       System.ServiceModel.Activation.MetabaseSettings.GetAllowSslOnly(String virtualPath) +10
       System.ServiceModel.Activation.HttpHostedTransportConfiguration.GetBaseAddresses(String virtualPath) +87
       System.ServiceModel.Activation.HostedTransportConfigurationManager.InternalGetBaseAddresses(String virtualPath) +117
       System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +553
       System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +44
       System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +651
    
    [ServiceActivationException: The service '/PROJETOS/Services/ECC/Data/eccDS.svc' cannot be activated due to an exception during compilation.  The exception message is: Exception has been thrown by the target of an invocation..]
       System.Runtime.AsyncResult.End(IAsyncResult result) +688590
       System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190
       System.ServiceModel.Activation.ServiceHttpModule.EndProcessRequest(IAsyncResult ar) +310694
       System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +94
    


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

    Desde ontem estou na luta para a publicação deste serviço que é a base de toda a minha construção para o site final.

    Falei com a analista da locaweb via chat e eles me disseram que não podem fazer alterações no servidor já que afetaria outros clientes, isto devido a minha hospedagem ser em um servidor compartilhado.

    Alguém já tem esta expertise sobre como instalar um serviço wcf data service na locaweb ou em outro host de mercado?

    O meu plano de hospedagem é windows server 2008 r2.

    A aplicação está acessando um banco de dados MySql.

    Abs,

    Lincoln Sposito

    lincoln@sptres.com

    11 9 9182-8571


    Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com / https://twitter.com/#!/sptres / http://www.facebook.com/pages/SP3-Provedor-De-Solu%C3%A7%C3%B5es-Servi%C3%A7os-e-Sistemas/167187496649756 / http://www.linkedin.com/company/sp3-solutions-services-and-systems-provider

    quinta-feira, 25 de outubro de 2012 11:20

Respostas

  • Após várias tentativas de configuração ficou claro para mim que na LOCAWEB não é possível trabalhar com WCF em um plano de hospedagem compartilhada devido às impossibilidades de se alterar o IIS para que a autenticação fique apenas Basic exclusivamente.

    Se no futuro alguém conseguir esta proeza estarei atento.

    Abs

    Lincoln


    Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com / https://twitter.com/#!/sptres / http://www.facebook.com/pages/SP3-Provedor-De-Solu%C3%A7%C3%B5es-Servi%C3%A7os-e-Sistemas/167187496649756 / http://www.linkedin.com/company/sp3-solutions-services-and-systems-provider

    • Marcado como Resposta LINCOLN SPOSITO sexta-feira, 26 de outubro de 2012 13:35
    sexta-feira, 26 de outubro de 2012 13:35

Todas as Respostas

  • Pessoal, após realizar várias simulações percebi que o erro ocorre devido a impossibilidade de alterar as configurações do servidor IIS quanto ao nível de segurança.

    No caso, anteriormente ao erro acima eu havia recebido este erro:

    Server Error in '/PROJETOS/Services/ECC/Data' Application.

    IIS specified authentication schemes 'Basic, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used.

    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.InvalidOperationException: IIS specified authentication schemes 'Basic, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used.

    Source Error: 
    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: 
    [InvalidOperationException: IIS specified authentication schemes 'Basic, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used.]
       System.ServiceModel.Web.WebServiceHost.SetBindingCredentialBasedOnHostedEnvironment(ServiceEndpoint serviceEndpoint, AuthenticationSchemes supportedSchemes) +287
       System.ServiceModel.Web.WebServiceHost.AddAutomaticWebHttpBindingEndpoints(ServiceHost host, IDictionary`2 implementedContracts, String multipleContractsErrorMessage, String standardEndpointKind) +765
       System.ServiceModel.Web.WebServiceHost.OnOpening() +219
       System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +274
       System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +206
       System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +651
    
    [ServiceActivationException: The service '/PROJETOS/Services/ECC/Data/eccDS.svc' cannot be activated due to an exception during compilation.  The exception message is: IIS specified authentication schemes 'Basic, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used..]
       System.Runtime.AsyncResult.End(IAsyncResult result) +688590
       System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +190
       System.ServiceModel.Activation.ServiceHttpModule.EndProcessRequest(IAsyncResult ar) +310694
       System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +94
    


    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

    E naquele momento eu resolvi a questão inserindo este bloco no meu webconfig:

    <system.webServer>
        <security>
          <authentication>
    <basicAuthentication enabled="false" />
          </authentication>
        </security>
      </system.webServer>  

    Após publicar o erro no primeiro post começa a ocorrer.

    Então estou entre a cruz e a espada, se comento esta configuração no webconfig do serviço o erro de autenticação deste post ocorre, e se deixo a configuração ocorre o erro de escrita nas configurações do servidor.

    Alguém sabe de uma boa opção para conciliar este ambiente?

    Abs,

    Lincoln


    Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com / https://twitter.com/#!/sptres / http://www.facebook.com/pages/SP3-Provedor-De-Solu%C3%A7%C3%B5es-Servi%C3%A7os-e-Sistemas/167187496649756 / http://www.linkedin.com/company/sp3-solutions-services-and-systems-provider

    quinta-feira, 25 de outubro de 2012 12:37
  • Após vários testes com configurações creio ter chegado a um consenso.

    No entanto ainda estou com problemas devido a dificuldade de visualizar qual o erro.

    Explicarei melhor no decorrer do post.

    Para resolver a questão do último post sobre a autenticação do servidor IIS, utilizei esta configuração abaixo no web.config do WCF Data Service:

    <bindings>
          <webHttpBinding>
            <binding>
              <security mode="None" />
            </binding>
          </webHttpBinding>
        </bindings>

    Isto resolveu os dois problemas.

    No entanto ao chamar o serviço estou recebendo esta mensagem:

    Request Error

    The server encountered an error processing the request. See server logs for more details.

    Ou seja, não me diz nada.

    Estudei algumas configurações para exibir mais detalhes sem sucesso diretamente pelo browser:

    <services>
          <service name="eccDS"  behaviorConfiguration ="DebugEnabled">
          </service>
        </services>
        <behaviors>
          <serviceBehaviors >
            <behavior name="DebugEnabled">
              <serviceDebug includeExceptionDetailInFaults="True"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>

    Peguei a url do serviço e tentei adicionar o serviço que está publicado na web na minha camada Serviços e obtive o seguinte erro:

    There was an error downloading 'http://sptres.com.br/PROJETOS/Services/ECC/Data/eccDS.svc/'.
    The request failed with the error message:
    --
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>Request Error</title>
        <style>BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px; } #content { margin-left: 30px; font-size: .70em; padding-bottom: 2em; } A:link { color: #336699; font-weight: bold; text-decoration: underline; } A:visited { color: #6699cc; font-weight: bold; text-decoration: underline; } A:active { color: #336699; font-weight: bold; text-decoration: underline; } .heading1 { background-color: #003366; border-bottom: #336699 6px solid; color: #ffffff; font-family: Tahoma; font-size: 26px; font-weight: normal;margin: 0em 0em 10px -20px; padding-bottom: 8px; padding-left: 30px;padding-top: 16px;} pre { font-size:small; background-color: #e5e5cc; padding: 5px; font-family: Courier New; margin-top: 0px; border: 1px #f0f0e0 solid; white-space: pre-wrap; white-space: -pre-wrap; word-wrap: break-word; } table { border-collapse: collapse; border-spacing: 0px; font-family: Verdana;} table th { border-right: 2px white solid; border-bottom: 2px white solid; font-weight: bold; background-color: #cecf9c;} table td { border-right: 2px white solid; border-bottom: 2px white solid; background-color: #e5e5cc;}</style>
      </head>
      <body>
        <div id="content">
          <p class="heading1">Request Error</p>
          <p>The server encountered an error processing the request. See server logs for more details.</p>
        </div>
      </body>
    </html>
    --.
    Metadata contains a reference that cannot be resolved: 'http://sptres.com.br/PROJETOS/Services/ECC/Data/eccDS.svc/'.
    The content type text/html of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>Request Error</title>
        <style>BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px; } #content { margin-left: 30px; font-size: .70em; padding-bottom: 2em; } A:link { color: #336699; font-weight: bold; text-decoration: underline; } A:visited { color: #6699cc; font-weight: bold; text-decoration: underline; } A:active { color: #336699; font-weight: bold; text-decoration: underline; } .heading1 { background-color: #003366; border-bottom: #336699 6px solid; color: #ffffff; font-family: Tahoma; font-size: 26px; font-weight: normal;margin: 0em 0em 10px -20px; padding-bottom: 8px; padding-left: 30px;padding-top: 16px;} pre { font-size:small; background-color: #e5e5cc; padding: 5px; font-family: Courier New; margin-top: 0px; border: 1px'.
    The remote server returned an error: (500) Internal Server Error.
    If the service is defined in the current solution, try building the solution and adding the service reference again.

    Em negrito marquei as potenciais causas e estou pesquisando cada caso.

    O pior cenário creio ser um erro 500, que provavelmente mascara o erro verdadeiro.

    Enfim, se alguém souber de algo eu agradeceria uma luz quanto a resolução do problema.

    Derrepente na locaweb é inviável de se trabalhar com SOA e WCF do jeito que estou projetando a solução.

    Esta constatação também ajuda, ou a indicação de um modelo mais fácil de ser implementado com WCF acessando dados.

    Abs,

    Lincoln


    Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com / https://twitter.com/#!/sptres / http://www.facebook.com/pages/SP3-Provedor-De-Solu%C3%A7%C3%B5es-Servi%C3%A7os-e-Sistemas/167187496649756 / http://www.linkedin.com/company/sp3-solutions-services-and-systems-provider

    quinta-feira, 25 de outubro de 2012 15:21
  • Após várias tentativas de configuração ficou claro para mim que na LOCAWEB não é possível trabalhar com WCF em um plano de hospedagem compartilhada devido às impossibilidades de se alterar o IIS para que a autenticação fique apenas Basic exclusivamente.

    Se no futuro alguém conseguir esta proeza estarei atento.

    Abs

    Lincoln


    Atenciosamente, Lincoln Sposito TEL COM. 55 11 3337-0944 / TEL CEL. 55 11 9182-8571 / EMAIL: LINCOLN@SPTRES.COM / skype: lincoln.sposito / www.sptres.com / https://twitter.com/#!/sptres / http://www.facebook.com/pages/SP3-Provedor-De-Solu%C3%A7%C3%B5es-Servi%C3%A7os-e-Sistemas/167187496649756 / http://www.linkedin.com/company/sp3-solutions-services-and-systems-provider

    • Marcado como Resposta LINCOLN SPOSITO sexta-feira, 26 de outubro de 2012 13:35
    sexta-feira, 26 de outubro de 2012 13:35