ASP.NETをさわってみたくて、さわってみました。
ロジック部分はC#で書きました。
SQLServerへのDB接続をしてなんかする、という単純動作です。
実際に「IIS」を利用してみようと思ったのですが、一筋縄にいかなかったので
記録しておきます。
【内容】
開発サーバからIISサーバを使用しようとした際にうまくいかなかった点の記録
【環境】
OS : Windows7 Home Premium
DB : SQL Server 2008 R2 ('Microsoft SQL Server Express Edition (64-bit))
開発 : Microsoft Visual Studio 2010 (Microsoft Visual Web Developer 2010)
まずは、IISを有効化、設定などして、
Visual Studioから、
「開始動作」は「ページを指定する」で一番初めに表示する「aspx」ファイルを記述しました。
「サーバー」は「IIS Web サーバーの使用」を選択しました。
そして緑三角ボタン(デバッグ開始)をクリックしました。
「HTTP エラー 500.21
ハンドラー "PageHandlerFactory-Integrated" のモジュール リストにあるモジュール "ManagedPipelineHandler" が正しくありません」
という訳のわからないエラーが表示されました。
調べると、ASP .NET4.0がインストールされていないだけらしいです。
使用している.NETが3.5等の場合は起きないエラーだと思います。
管理者権限コマンドプロンプトから
「C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i」
を実行してインストール完了です。
「aspnet_regiis.exe」は登録ツールです。
「-i」はインストールのオプションです。
さて、改めて緑三角ボタン(デバッグ開始)をクリックしました。
むー?><
このログインで要求されたデータベース "TosDb" を開けません。ログインに失敗しました。
ユーザー 'IIS APPPOOL\DefaultAppPool ' はログインできませんでした。
という訳のわからないエラーが表示されました。
色々調べると色々出てきすぎて、よくわかりませんでした。
これをするといい、あれをするといいetc。。。
シンプルだと思った方法を選択。
それは、エラーの内容のまんまを対応することでしたw
「Microsoft SQL Server Management Studio」から、
[DB名]-[セキュリティ]-[ユーザー]を右クリックし、「新しいユーザー」を選択します。
・「ユーザー名」「ログイン名」に「IIS APPPOOL\DefaultAppPool」を記述します。
・「データベース ロールのメンバーシップ」で「db_owner」にチェックをつけます。
・「OK」ボタンをクリックします。
最後に「IIS」の認証設定をします。
「認証」項目で、「匿名認証」を右クリックし、「編集」を選択します。
「アプリケーション プール ID」を選択し、「OK」ボタンをクリックします。
緑三角ボタン(デバッグ開始)をクリックすると正常にDB接続もできました。
※ログインできませんでしたエラーで
ユーザー 'IIS APPPOOL\ASP.NET v4.0 ' はログインできませんでした。
の時もありました。
その時も、上記同様に「そのまんま」ユーザーを追加してあげれば大丈夫でした。
0 件のコメント:
コメントを投稿