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
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.