IIS のウェブサイトにアクセスすると、Service Unavailable エラーが表示される。

現象

IIS サービス(World Wide Web Publishing Service)を起動し、Web サイトを開始した状態で IIS の ウェブサイトにアクセスすると、Service Unavailable エラーが表示される。

環境

原因

デフォルトのアプリケーション プール「DefaultAppPool」が起動していなかった。
Web サイトのプロパティで指定されたアプリケーション プールが起動している必要がある。

手順

  1. [スタート]?[プログラム]?[管理ツール]?[インターネット インフォメーション サービス (IIS) マネージャ]を起動する。
  2. [アプリケーション プール]内の「DefaultAppPool」を起動する。

参照

ユリウス通日(ジュリアンデート)を変換する。

一部パッケージソフトなどでは、1900年を基点としたユリウス通日(ジュリアンデート)で日付を持っていることがある。
データのインポート/エクスポートには、変換が必要だ。

方法

以下、シリアル番号日付と Excel 2000 でのユリウス日付を使用する方法 より。

ユリウス日付にシリアル番号日付を変換

=TEXT(Standard_Date,"yy")&TEXT((Standard_Date-DATEVALUE("1/1/"&TEXT(Standard_Date,"yy"))+1),"000")

シリアル番号日付にユリウス日付を変換

=DATE(1900+INT(Julian_Date/1000),1,MOD(Julian_Date,1000))

参照

最適な工期は「投入人月の立方根の2.4倍」。

最適な工期は「投入人月の立方根の2.4倍」、JUASが調査

デスマーチ化するプロジェクトの条件の1つは工期の設定が不適切であることだろう。調査から導き出された標準開発工期は「投入人月の立方根の2.4倍」。

立方根って何だっけ…? 一瞬思い出せなかったよ。
1000人月ならば、24ヶ月。
100人月ならば、約11ヶ月。
10人月ならば、約5ヶ月。まぁ、確かにこんな感じだろうね。

工数(人月)の設定ではシステムの画面数やファイル数も使える。調査から導き出されたのは「必要工数=0.1×ファイル数+1.3×画面数+0.3× バッチ数」という数式。その中でも工数と最も高い相関を示すのは画面数で、「必要工数=画面数×1.55」との数式も示された。

この式が、一番役に立ちそう。一番肝心な総工数を概算するときに、パッと算出できて便利。
概算工数を出すときって、根拠は勘と経験しかないから「ほんとにこんなにかかるの?」って言われたとき、明確な根拠など無いので理由を説明できないことが多い。で、その場で理由見つけて誤魔化すってよくやるなぁ。
なにより、提示された工数が多すぎる/少なすぎるのを素早くチェックできるのがいい。

でも、デスマーチの原因って、工期が短いことよりも、その根拠となる総工数を無理して小さく見積もるのが、一番の原因だよね。「ほんとにこんなにかかるの?」っていう圧力に屈しちゃう人がいるのよ。

IIS のウェブサービスにアクセスすると「IIS メタベースにアクセスできませんでした。」とエラーが発生する。

現象

ブラウザからウェブサービスにアクセスすると、以下のメッセージが表示される。

'/hogehoge' アプリケーションでサーバー エラーが発生しました。
IIS メタベースにアクセスできませんでした。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.Web.Hosting.HostingEnvironmentException: IIS メタベースにアクセスできませんでした。
ASP.NET を実行するのに使用されるプロセス アカウントには IIS メタベース (例: IIS://サーバー名/W3SVC) への読み取りアクセスが必要です。メタベースのアクセス許可の変更に関する詳細は、http://support.microsoft.com/?kbid=267904 を参照してください。
ソース エラー:
現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。
スタック トレース:
[HostingEnvironmentException: IIS メタベースにアクセスできませんでした。]
System.Web.Configuration.MetabaseServerConfig.MapPathCaching(String siteID, VirtualPath path) +3591442
System.Web.Configuration.MetabaseServerConfig.System.Web.Configuration.IConfigMapPath2.MapPath(String siteID, VirtualPath vpath) +9
System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +169
System.Web.CachedPathData.GetConfigPathData(String configPath) +389
System.Web.CachedPathData.GetConfigPathData(String configPath) +243
System.Web.CachedPathData.GetApplicationPathData() +68
System.Web.CachedPathData.GetVirtualPathData(VirtualPath virtualPath, Boolean permitPathsOutsideApp) +3536567
System.Web.Configuration.RuntimeConfig.GetLKGRuntimeConfig(VirtualPath path) +189
バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.1433; ASP.NET バージョン:2.0.50727.1433

環境

原因

.NET Framework をインストールした後に IIS をインストールすると、.NET Framework の実行権限が設定されないため。

手順

  1. [スタート]?[コントロールパネル]?[プログラムの追加と削除]から、IIS と .NET Framework をアンインストールする。
  2. IIS をインストールする。
  3. .NET Framework をインストールする。

aspnet_regiis.exe を使う方法があるようですが、試してない。

参照

Subversion でのコミット時に「MERGE request failed on …」とエラーが発生する。

現象

TortoiseSVN から追加したドキュメントをコミットをすると、以下の現象が発生する。

  1. リポジトリへのドキュメントの追加が成功したメッセージが表示される。
  2. 続いて、以下のエラーメッセージが表示される。
    エラー: Commit failed (details follow):
    エラー: MERGE request failed on '/svn/SampleProject/LibraryProject'
    エラー: MERGE of '/svn/SampleProject/LibraryProject': 200 OK (http://SVNServer)
  3. Trac のリポジトリブラウザから見ると、ドキュメントの追加には成功している。しかし、ローカルのチェックアウトフォルダはコミット失敗の状態で、リポジトリとローカルのリビジョンの同期が取れていない。
  4. 以降のリポジトリ操作が、更新・コミットともに不可能になる。別フォルダへのチェックアウトは可能。

環境

原因

Trac Lightning 1.7.4 で、環境変数 TL_PROJECT_HOME が追加になっている。これに伴い、hook クリプト(post-commit.bat)が変更になっているが、旧バージョンで作成されたプロジェクト内のスクリプトは自動的に置き換えられていないため。

方法

  1. hook クリプトに独自の修正を加えていないならば、そのままプロジェクトの hooks フォルダにコピーする。
    cp \TracLight\bin\post-commit.bat \TracLight\projects\svn\SampleProject\hooks\
  2. hook クリプトに独自の修正を加えていれば、\TracLight\bin\post-commit.bat を参考にして修正する。