mod_mono no SLES 12.1 falha ao criptografar o Web.config do asp.net

2

Estou tentando migrar um aplicativo da web do ASP.Net (2.0) VB de um servidor SLES 11 para um novo servidor SLES 12. Infelizmente, o mono não é mais suportado pelo Novell / SUSE / NetIQ folk.

Esta é minha primeira vez em desenvolvimento para uma combinação Apache mono / mod_mono. Tem sido uma experiência bastante de aprendizado. Não tenho certeza se tenho tudo (as versões mono / repos / configs) alinhadas corretamente. Muita coisa mudou desde o Visual Studio 2008. Espero que um ex-Novell ou outro especialista em mono possa me ajudar a resolver as coisas.

Então, depois de muito esforço, consegui uma solução um pouco funcional, mas não consigo criptografar o web.config. Em vez de produzir uma seção connectionStrings web.config criptografada, a chamada de proteção consome a maior parte do arquivo e fornece à página de erro a seguinte mensagem

System.Xml.XmlException

Root element is missing.

não é de admirar que a configuração da web seja reduzida para ...

<?xml version="1.0" encoding="utf-8"?>
<configuration><appSettings>
  </appSettings></configuration>

de

?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
  </appSettings>
  <connectionStrings>
    <add name="websalesConnectionString" connectionString="server=192.168.85.15;User Id=zzzz;password=zzzz;Persist Security Info=True;database=websales" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <system.web>
    <authentication mode="Windows" />
    <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
    <compilation debug="true" strict="false" explicit="true">
      <assemblies>
        <add assembly="*" />
      </assemblies>
    </compilation>
    <customErrors mode="Off" />
    <pages>
      <namespaces>
        <clear />
        <add namespace="System" />
        <add namespace="System.Collections" />
        <add namespace="System.Collections.Generic" />
        <add namespace="System.Collections.Specialized" />
        <add namespace="System.Configuration" />
        <add namespace="System.Text" />
        <add namespace="System.Text.RegularExpressions" />
        <add namespace="System.Web" />
        <add namespace="System.Web.Caching" />
        <add namespace="System.Web.SessionState" />
        <add namespace="System.Web.Security" />
        <add namespace="System.Web.Profile" />
        <add namespace="System.Web.UI" />
        <add namespace="System.Web.UI.WebControls" />
        <add namespace="System.Web.UI.WebControls.WebParts" />
        <add namespace="System.Web.UI.HtmlControls" />
      </namespaces>
    </pages>
  </system.web>
</configuration>

Aqui está o método que é chamado para fazer a criptografia (arquivo comendo)

Public Sub webencrypt(ByVal lEncrypt As Boolean)
    Dim config As Configuration = WebConfigurationManager.OpenWebConfiguration("~")
    Dim configSection As ConfigurationSection = config.GetSection("connectionStrings")
    If lEncrypt Then
        If Not configSection.SectionInformation.IsProtected Then
            configSection.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider")
            config.Save()
        End If
    End If          
End Sub

Eu tentei o código de: link

e de: link

Informações da versão

  • Apache2 (2.4.16)
  • Apache2-mod-mono (3.12-1)
  • Mono (4.2.2.30)
  • ASP.Net (2.0)

mod-mono-serverX.exe

Outro mistério é que os erros do mod-mono-server2.exe estão aparecendo no log do apache. Por que o mod-mono-server2.exe (seu wrapper em / usr / bin) é chamado?

Cannot open assembly '/usr/lib/mono/2.0/mod-mono-server2.exe': No such file or directory.

Eu uso especificamente a diretiva apache mod_mono MonoServerPath para chamar mod-mono-server4.exe.

... MonoServerPath webtest "/usr/bin/mod-mono-server4" ...

Quais chamadas

/usr/lib/mono/4.5/mod-mono-server4.exe

que aponta para

mod-mono-server4.exe - > ../gac/mod-mono-server4 / 4.2.0.0__0738eb9f132ed756 / mod-mono-server4.exe

mod-mono-server2.exe não está instalado com o mais recente mono AFAIK. Muitas combinações / testes são necessários para descobrir isso, pois os documentos ainda se referem ao mod-mono-server para o ASP 1 e mod-mono-server2 para o ASP 2 .... e nem uma palavra sobre o mod-mono-server4.

Eu posso ignorar os erros e / ou re-apontar os invólucros mono para todos os pontos para mod-mono-server4 ... mas isso também parece errado.

    
por Colin 10.03.2016 / 22:05

0 respostas