SLES 12.1のmod_monoはASP.Net web.configを暗号化できません。

SLES 12.1のmod_monoはASP.Net web.configを暗号化できません。

ASP.Net(2.0)VB WebアプリケーションをSLES 11サーバーから新しいSLES 12サーバーに移行しようとしています。残念ながら、Novell/SUSE/NetIQユーザーはモノをサポートしなくなりました。

mono/mod_mono Apacheの組み合わせを開発するのは今回が初めてです。素晴らしい学習経験でした。すべてが正しく整列されているかどうかわかりません(モノバージョン/ストレージ/構成)。 Visual Studio 2008以降、多くが変更されました。私はNovellや他のMonoの専門家がこの問題を解決するのに役立つことを願っています。

だから少しの努力の終わりに動作するソリューションを得ることができたが、web.configを暗号化することはできないようです。保護された呼び出しは暗号化されたweb.config ConnectionStringsセクションを生成しませんが、代わりにほとんどのファイルを占有し、次のメッセージでエラーページを提供します。

System.Xml.XmlException

ルート要素がありません。

当然ながら、ネットワーク構成は次のように減少します。

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

~から

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

暗号化(ファイル飲み込み)を実行するために呼び出される方法。

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

頑張りましたコード:http://www.developersalley.com/blog/post/2011/11/22/How-To-Protect-Webconfig-File.aspx

そして次から: http://devproconnections.com/aspnet/encrypting-configuration-file-sections

バージョン情報

  • Apache 2(2.4.16)
  • Apache2-mod-モノ (3.12-1)
  • モノ(4.2.2.30)
  • ASP.NET(2.0)

mod-mono-serverX.exe

別の謎は、mod-mono-server2.exeエラーがApacheログに表示されることです。 mod-mono-server2.exe(/ usr / binにパッケージされている)が呼び出されるのはなぜですか?

'/usr/lib/mono/2.0/mod-mono-server2.exe'アセンブリを開くことができません。そのファイルやディレクトリはありません。

具体的には、Apache mod_mono ディレクティブ MonoServerPath を使用して mod-mono-server4.exe を呼び出します。

... MonoServerPath Webテスト "/usr/bin/mod-mono-server4" ...

どの電話

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

これは以下を指します。

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

mod-mono-server2.exe は最新のモノ AFAIK と一緒にインストールされません。ドキュメントではまだmod-mono-server4を参照しておらず、ASP 1の場合はmod-mono-server、ASP 2の場合はmod-mono-server2を参照しているため、これを把握するために多くの結合/テストが必要でした。

エラーを無視したり、モノラッパーのすべてのポイントをmod-mono-server4に戻すことができますが、それも正しくないようです。

関連情報