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に戻すことができますが、それも正しくないようです。