web 2008 導入 (29) YetAnotherForum.NET

http://yetanotherforum.net/

を試します。

インストール後は こんなの です。

 

tryiis7mgr を使い、データベース DB_xtest3_yaf を新規作成。

 

YAF-v1.9.3-FINAL-BIN-NET35.zip ファイルをダウンロードして手元で解凍。

 

YAF-v1.9.3-FINAL-BIN-NET35\webconfigs\recommended-NETv3.5-web.config ファイルを
YAF-v1.9.3-FINAL-BIN-NET35\ フォルダにコピーして、
web.config にリネーム。

 

YAF-v1.9.3-FINAL-BIN-NET35\db.config ファイルを書き換える。

変更前

<connectionStrings>
    <add name="yafnet" connectionString="data source=(local);initial catalog=yafnet;integrated security=SSPI" />
</connectionStrings>

 

変更後

<connectionStrings>
    <add name="yafnet" connectionString="data source=mssql2008; initial catalog=DB_xtest3_yaf; integrated security=SSPI" />
</connectionStrings>

 

 

YAF-v1.9.3-FINAL-BIN-NET35\app.config ファイルに「インストーラーを保護するためのパスワード」を指定する。

変更前

<appSettings>
  <!–
  ******************************************************************
    ** ConfigPassword Key ** Defaults to: Empty (not installed) **
  Password to run configuration (/install/default.aspx) for the forum.
  If you cannot set write permissions on this file (app.config)
  you can manually enter a plain text password here that will
    be required when you attempt to run the configuration. Install/config
    password is required for security reasons.
   –>
    <add key="YAF.ConfigPassword" value="" />

 

変更後

<appSettings>
  <!–
  ******************************************************************
    ** ConfigPassword Key ** Defaults to: Empty (not installed) **
  Password to run configuration (/install/default.aspx) for the forum.
  If you cannot set write permissions on this file (app.config)
  you can manually enter a plain text password here that will
    be required when you attempt to run the configuration. Install/config
    password is required for security reasons.
   –>
    <add key="YAF.ConfigPassword" value="***インストーラーを保護するためのパスワード***" />

 

 

YAF-v1.9.3-FINAL-BIN-NET35 フォルダの中身を FTP で /webapps/yaf へアップロード。

 

E:\Account\xtest3\webapps\yaf ディレクトリを /yaf にマッピング。

 

  /yaf をクラシック モードのアプリにする。

 

ブラウザーで /yaf/install/ を要求。

 ***インストーラーを保護するためのパスワード*** を入力して「次へ」をクリック。

Create Forum

Setup/Upgrade Finished

おめでとうございます。

web 2008 導入 (28) Gallery Server Pro

Windows Web App Gallery – Featured Apps

に続き、ASP.NET オープンソース・ソフトウエアを使おう
を見つけたので、そこに書いてあるのを順番に試そうと思う。

いずれは Open Source Scripts – OpenSourceCMS も試すつもり。

Gallery Server Pro

今日試すのは Gallery Server Pro です。

Open Source Web Gallery For Photos, Video, Audio, and Documents – Gallery Server Pro

インストール後は こんな感じ です。

導入手順

GalleryServerPro_V2_3_3421_x86.zip を手元で解凍。

四種類の web.config があります。

  • web.config (SQLite で netfx 2.0)
  • web_3.5.config (SQLite で netfx 3.5)
  • web_sqlserver_2.0.config (SQL Server で netfx 2.0)
  • web_sqlserver_3.5.config (SQL Server で netfx 3.5)

今回は web_sqlserver_3.5.config を web.config にリネームして使います。その他の .config は削除。

bin\System.Data.SQLite.DLL ファイルを削除。

FTP でファイル群を /gsp へアップロード。

/gsp を integrated mode のアプリに指定。クラシック モードは駄目です。クラシックだと、インストール後にログインしようとすると javascript エラー 「’dgLogin’ は宣言されていません」が出ます。

tryiis7mgr を使い、サーバー上に新規 SQL Server データベースを作成。

/gsp/default.aspx?g=install をブラウザで表示。

SQLite か SQL Server かを選ぶよう指示されるので SQL Server を選ぶ。

SQL Server Name or IP address:
に mssql2008
を入力。

Windows 認証か SQL 認証か選ぶ際は Windows 認証を選ぶ。

データベース選択ドロップダウンリストで DB を選択。

通常はどの auth. を使いますか?の三択
(1) Use same connection specified earlier
(2) Windows Authentication
(3) SQL Server Authentication
どれを選んでもよいが、(2) が簡単だろう。

Script ASP.NET Membership
のチェックボックスをオンのまま進む。

管理者アカウントの設定をする。

右上の Log In をクリックして中に入る。

それなりに使えるのを確認したら、インストールとアップグレードを不可にしておく。

IMPORTANT:  When you are finished, it is strongly recommended that you
disable the install and upgrade wizards to prevent unauthorized
access to your server. To disable, change the value of the ENABLE_SETUP
hidden field to FALSE in install.ascx and
upgrade.ascx (in the gs\pages directory) or delete the files.

 

default.aspx?g=install

default.aspx?g=upgrade

以上

web 2008 導入 (27) dw20.exe が CPU を 100 % 喰う場合の対処方法

 

現象

mojoPortal を触っていると、ときどきこの図のように約 50 秒の間 cpu が 100 % 天井張り付きになってしまう。

dw20.exe、Microsoft .NET Error Reporting Shim

アプリケーション プール ‘pool_xtest3_c’ を提供しているプロセスが突然終了しました。プロセス id は ‘3036’ でした。プロセス終了コードは ‘0xe0434f4d’ でした。

 

 

解決策

dw20.exe が関与しないよう(CPU を喰い尽くさないよう)、設定を変更します。

mojoPortal で発生しているエラーを解決するのではありません。dw20.exe が邪魔者なのです。イベント ログに載るエラー情報(アプリケーション ログ、システム ログ)は必要なので、そのまま記録を有効にしておきます。

Control Panel → Classic View → Problem Reports and Solutions (問題のレポートと解決策)

設定の変更 (Change settings) → 詳細設定を行います (Advanced settings)

この図のように無効、無効、無効にする。

設定変更後は、mojoPortal でエラーが発生しても cpu 天井張り付きが発生しなくなりました。めでたしめでたし。

 

参考 1

Description of the Windows Error Reporting tool (Dw20.exe)

ここに書いてある方法は、効果がありませんでした。

 

Rahul Soni’s blog DW20.exe was stopping us from taking the Crash Dumps in w3wp.exe! How to disab

効果なしと、この方もブログ記事に書いています。で、解決方法を書いてくださっていますが Windows 2008 と 2003? で GUI が異なるのでそのままでは、そこに書いてある方法は使えません。

 

Windows Error Reporting and the Problem Reports and Solutions Feature in Windows Server 2008

で、代わりに、Windows 2008 の場合の GUI を解説してあるのがここです。ここをみて解決に至りました。

 

参考 2 (未整理)

.NET Framework 2.0 で、ハンドルされない例外によって ASP.NET ベースのアプリケーションが突然終了する

Disable Error Reporting in Windows Vista

 

未解決

mojoPortal で発生するイベント ID 1334 と、throw new ApplicationException() した際の ID 1309 の違いが不明。面倒なので今日は調べない。

1334

1309

1334 の場合に限り、システム ログに 5009 が出る。

web 2008 導入 (26) mojoPortal

昨日見たときには eCommerce というカテゴリーはなかったのに。。。 nopCommerce ですって!次回試しましょう。

コマースといえば国産のオープン ソース  EC-CUBE は SQL-Injection が多くてまいった。実際に参ったのは俺じゃないけど。

 

気晴らしに・・・と思って Go Daddy の Linux 一か月 $14.99 のを借りたけど、気晴らしにならず逆効果の予感。。。

(Go Daddy は good です。念のため)

 

こんどこそ、気晴らしに mojoPotal というのを試します。インストール経験はありません。今回が初めてです。

インストール手順は ここ にありますね。

 

サーバーにてデータベースを新規作成。

 

mojoportal-2-3-0-4-b-mssql-deploymentfiles.zip を手元で解凍。

 

web.config に

<add key="MSSQLConnectionString" value="server=yourservername; UID=yourdatabaseusername; PWD=yourdatabaseuserpassword; database=yourdatabasename" />

 

とあるので以下のように書き換え。

<add key="MSSQLConnectionString" value="Data Source=mssql2008; Integrated Security=True; database=DB_xtest3_mojo;" />

 

FTP でアップロード。ファイル数は約 8,600 。多すぎ。。。

 

どちらがいいかわからないのでとりあえずクラシック プールに設定。

 

トラブル対策用に書き換え

<customErrors mode="RemoteOnly" defaultRedirect="Error.htm">

<customErrors mode="Off" defaultRedirect="Error.htm">

に。これは後で元に戻す必要あり。

 

mojoPortal – Running in Medium Trust

あらら。

  1. Rename Web.config file to Web.fulltrust.config
  2. Rename Web.mediumtrust.config to Web.config
  3. Delete DotNetOpenId.dll from the /bin folder
  4. Make sure and visit your /Setup/Default.aspx page, it should tell you a setting you need to add to Web.config for the search engine to get around a medium trust issue.

 

従いましょう。

DotNetOpenID.dll じゃなく DotNetOpenAuth.dll ですけど。

 

ディスク空き容量不足ですって?!

しかたない、増やします。

E:\>dirquota quota modify /path:e:\Account\xtest3 /limit:200mb

クォータは正常に変更されました。

 

In order for the Search Engine to work in Medium trust, you need to add this in Web.config in the AppSettings section:
<add key="Lucene.Net.lockdir" value="E:\Account\xtest3\webapps\mojo\Data\Sites\1\index" />

(2009・5・31 追記) ↑のメッセージに従って web.config を編集すると、全文検索が(それなり)に動くようになります。web.config へ追記後に投稿したアイテムのみインデックス対象になるのかも。投稿すると なふうにキューにアイテムが溜まり、しばらくするとキューからアイテムが消えます。

 

注意: このページはセットアップやアップグレードの際に役立つ情報を表示しますが、セキュリティ面から、セットアップの完了後は情報を表示しないように、 Web.config でDisableSetup=true に設定するようにしてください。アップグレードをする時は、設定を false に戻してください。管理者でログインしている時は、Web.config で無効になっていてもセットアップが動作するので、アップグレードの前にログインするようにすれば設定を無効のままにすることもできます。事前にログインしていない場合は、Web.config の設定を有効にしてください。

ログインは、メール: admin@admin.com パスワード admin です。 ログインしたら、必ずマイアカウントのページで管理者の名前とパスワードを変更してください。

 

customErrors mode="Off" を "RemoteOnly” に戻しておきましょう。

 

 

<add key="DisableSetup" value="false" />

 

<add key="DisableSetup" value="true" />

に変更しましょう。

setup にアクセスして無効になっていることを確認。

 

今日はここまで。DNN は難しかったが、これは理解できそうなのでもう少し触ってみるつもり。

web 2008 導入 (25) Umbraco は Medium 信頼では動かせないようだ

Windows Web App Gallery – Browse Apps

とかいうの見つけたので、今日は気晴らしに webapp を入れてみる。

今日試すのは Umbraco というやつ。

これは過去に試したことがない。

インストール手順が不明なので、予想しながら手探りで進む。

umbraco4.0.1-webdeploy.zip をダウンロードし、手元で解凍。

解凍して出来上がったファイルをごっそり FTP でアップロード。

/umbraco をクラシック プールを使うアプリにする。

System.Security.Policy.PolicyException ですって!そういえば Medium 信頼で足りるのかどうか確かめてなかった。

web.config の <add key="umbracoUseMediumTrust" value="false" /> を false から true に変えてみる。

Medium trust support for umbraco 4 – help me identify what’s needed – New Features – umbraco For

駄目ですね。Medium だと無理っぽい。あきらめます。

web 2008 導入 (24) MWA で httpErrors を取る

 

C# で MWA を使う。

var mgr = new ServerManager();
Microsoft.Web.Administration.Configuration config = mgr.GetApplicationHostConfiguration();
ConfigurationSection section = config.GetSection("system.webServer/httpErrors", "zokinawa web/dir1/dir3/history.txt");
ConfigurationElementCollection col = section.GetCollection();
foreach (ConfigurationElement ele in col)
{
    Console.Write("<" + ele.Schema.Name + " ");
    foreach (ConfigurationAttribute attr in ele.Attributes)
    {
        Console.Write(attr.Name + "=\"" + attr.Value + "\" ");
    }
    Console.WriteLine(" />");
}

 

 

実行結果

<error statusCode="401" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" responseMode="0"  />
<error statusCode="403" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" responseMode="0"  />
<error statusCode="404" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" responseMode="0"  />
<error statusCode="405" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" responseMode="0"  />
<error statusCode="406" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" responseMode="0"  />
<error statusCode="412" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" responseMode="0"  />
<error statusCode="500" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" responseMode="0"  />
<error statusCode="501" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" responseMode="0"  />
<error statusCode="502" subStatusCode="-1" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" responseMode="0"  />
<error statusCode="404" subStatusCode="2" prefixLanguageFilePath="" path="http://www.contoco.com/404.aspx&quot; responseMode="2"  />

 

 

参考

Adding HTTP Errors error  Configuration Reference  The Official Microsoft IIS Site

web 2008 導入 (23) system.webServer/httpErrors

 

ErrorPages アイコンを Site 管理者に渡してしまいたい (system.webServer/httpErros セクションを overrideMode="Allow" したい、 ) のだが、サーバーの中あちこち探られてしまうので、無理だ。

 Granular Configuration Locking で都合良く渡して、都合良く取り上げたいのだが、「error コレクションの中の responseMode が File のときのみパスを特定の場所に限る」なんてことは表現できないので、system.webServer/httpErrors をサイト オーナーに渡すのはあきらめて、なんちゃってコンパネでそのあたりを実装するしかない。

なので、とりあえず今日は予習 (appcmd で下調べ) をする。

applicationHost.config を編集した

その1

$ appcmd list config "zokinawa web/dir1/dir3/history.txt" ‘-section:system.webServer/httpErrors’
<system.webServer>
  <httpErrors errorMode="Detailed">
    <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" />
    <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" />
    <error statusCode="404" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="404.htm" />
    <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" />
    <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" />
    <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" />
    <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" />
    <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" />
    <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" />
    <error statusCode="404" subStatusCode="2" path="http://www.contoco.com/404.aspx&quot; responseMode="Redirect" />
  </httpErrors>
</system.webServer>

 

applicationHost.config に追加したのは一行だが、(結論)10行を返してくれる。

 

その2

$ appcmd list config "zokinawa web/example1" ‘-section:system.webServer/httpErrors’
<system.webServer>
  <httpErrors errorMode="DetailedLocalOnly">
    <error statusCode="401" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="401.htm" />
    <error statusCode="403" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="403.htm" />
    <error statusCode="404" prefixLanguageFilePath="" path="/MyErrorPages/404.aspx" responseMode="ExecuteURL" />
    <error statusCode="405" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="405.htm" />
    <error statusCode="406" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="406.htm" />
    <error statusCode="412" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="412.htm" />
    <error statusCode="500" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="500.htm" />
    <error statusCode="501" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="501.htm" />
    <error statusCode="502" prefixLanguageFilePath="%SystemDrive%\inetpub\custerr" path="502.htm" />
  </httpErrors>
</system.webServer>

 

applicationHost.config に追加したのは二行だが、(結論)9行を返してくれる。

 

次回

このあたりを MWA で試す。