質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

VMware

VMwareとは、 ハードウェアで動作するOS上で仮想マシンを作成、実行するソフトウェアです。 Windows上でUNIX系OSを動作させたり、他のOS上で別の仮想OSを動作することが可能です。

Windows XP

Windows XPは、2001年にMicrosoft社が発売したOSです。 一般家庭向けの「Windows XP Home Edition」とビジネス用途向けの「Windows XP Professional」の2つがあり、 一般家庭向けのWindowsでは初めてNTカーネルが採用されました。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

Q&A

2回答

5614閲覧

ASPファイルにブラウザからアクセスしようとしたが、意図していたものと異なる

退会済みユーザー

退会済みユーザー

総合スコア0

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

VMware

VMwareとは、 ハードウェアで動作するOS上で仮想マシンを作成、実行するソフトウェアです。 Windows上でUNIX系OSを動作させたり、他のOS上で別の仮想OSを動作することが可能です。

Windows XP

Windows XPは、2001年にMicrosoft社が発売したOSです。 一般家庭向けの「Windows XP Home Edition」とビジネス用途向けの「Windows XP Professional」の2つがあり、 一般家庭向けのWindowsでは初めてNTカーネルが採用されました。

ASP

ASP(Active Server Pages) あるいはClassic ASP (ASP Classic)は、マイクロソフト社開発した動的なウェブページ製作に利用可能なサーバー側のスプリクトエンジンです。

0グッド

0クリップ

投稿2015/09/17 10:05

MacOSXのVMWare fusionでゲストOSとしてWindows XPを立ち上げています。

Windows XPで、IIS, 管理とモニターツールをインストールし、SQL Server 2005 Express Edition, Microsoft SQL Server Management Studio Expressを用いてアプリケーションを作成しました。

C:¥Inetpub¥wwwroot¥に置いたDefault.aspxをブラウザから閲覧しようと思い、ブラウザでhttp://192.168.xxx.xxx/Default.aspxのページにアクセスしたのですが、本来ログインフォームを経由してログイン成功するはずが、ログインフォームを経由せずにログイン成功の画面が表示されてしまいます。

なんども試してみたのですが、自分だけでは解決できそうになく、質問を投稿させていただきました。
原因、改善方法をご教授いただけないでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BlueMoon

2015/09/17 23:05

ログインフォームはDefault.aspxでログイン成功画面は別のaspxファイルとの理解で良いですか? 手動でDBのレコード削除(もしくはusername変更)の後、ブラウザアクセスした結果を教えて頂けないでしょうか。
guest

回答2

0

いただいたURL(http://blog.livedoor.jp/khazad_lefty/archives/51467492.html)の通りにして、再起動したところ、見事、aspxファイルが動作しました・・・(泣)

私がもともと動かしたかったaspxファイルもきちんと動作して・・・感無量です・・・
本当にありがとうございます!!!

投稿2015/09/22 13:09

Divided_by_Zero

総合スコア42

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sgr-2

2015/09/22 14:35

解決おめでとうございます!! 本当に良かったです。
Divided_by_Zero

2015/09/22 16:27

ありがとうございます!! 長い間原因がわからず、ほとほと困り果てていたので本当にたすかりました!これで関連する作業を進行できます!! せっかくド素人に付き合っていただいたところ申し訳ないのですが・・・teratailを利用するのは初めてで、ゲストとして質問してしまったのでこの質問を解決状態にする方法がわかりません・・・・ 本当に申し訳ないです・・・(泣)
guest

0

こんばんは。

手元にXPの環境が残っていないので、同じような環境(バージョン)で確認をする事ができないのですが
「認証」の方法によって手掛かりを探っていく部分が大きく違ってくるように思います。

作成したアプリケーションについて、以下のような情報があると分かり易くなるのではないかと思います。
・Windows認証などを利用している
・アプリケーションで独自の認証をしている
→Windowsのユーザーとは無関係にアプリケーション(自前)でユーザーを管理


追記 2015/09/21 16:36頃

単純に「ログオン」ボタンを押すと、「ログオン成功と書かれたLabel」のVisible値を変更する物を書いてみました。こちらで確認するとVisible値が正しく設定されました。(Windows 7 SP1 + IIS 7 + IE 8)
以下のコードを配置して実行したときの表示/非表示 動作を確認頂けると良いかも知れません。

loginform.aspx

ASP.NET

1<%@ Page Language="C#" CodeFile="loginform.aspx.cs" Inherits="LoginForm" %> 2<HTML> 3 <HEAD> 4 <TITLE>ログインフォーム</TITLE> 5 </HEAD> 6 7 <BODY> 8 <form runat="server"> 9 <DIV><CENTER><B>ログインフォーム</B></CENTER></DIV> 10 <BR> 11 <TABLE border="1" bgcolor="#aaaaee"> 12 <TR> 13 <TD>ユーザー名</TD> 14 <TD><asp:TextBox runat="server" id="username"/></TD> 15 </TR> 16 <TR> 17 <TD>パスワード</TD> 18 <TD><asp:TextBox runat="server" id="passwd"/></TD> 19 </TR> 20 </TABLE> 21 <BR> 22 <asp:Button runat="server" id="loginbtn" text="ログオン" OnClick="loginbtn_OnClick"/> 23 <asp:Label runat="server" id="label1" text="ログイン成功" visible="false"/> 24 </form> 25 </BODY> 26</HTML>

loginform.aspx.cs

C#

1using System; 2 3public partial class LoginForm : System.Web.UI.Page 4{ 5 protected void loginbtn_OnClick(object sender, EventArgs e) 6 { 7 label1.Visible = !label1.Visible; 8 } 9}

追記 2015/09/22 21:04頃

IISで正しく.NET Frameworkが認識されているか確認するため、ブラウザであえて存在しないaspxを指定してみる方法があると思います。エラー画面の赤枠部分にNET FrameworkとASP.NETのバージョンが表示される筈なので、ここに多分2.0の表示がされると思います。

もしも、「ページが見つかりません」の画面が表示されるようだと、IISがNET Frameworkを正しく認識できていないのかも知れません。

イメージ説明

また、上記で正しくバージョンが表示された場合はasp:XXXのタグの入ったaspxページをブラウザで開き、右クリックメニューの「ソースの表示」をしてみて中身がそのまま(aspタグがそのままの形で残っている)だとしたら、IIS側できちんと処理がされていない事になりそうです。

他に確認方法で思い付くとしたら、「管理ツール」の「インターネット インフォメーション サービス」でWebサイトのプロパティを開いて、「ASP.NET」のタブが存在するか?ですかね。
イメージ説明

投稿2015/09/17 12:30

編集2015/09/22 12:04
sgr-2

総合スコア294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Divided_by_Zero

2015/09/17 13:51

情報が不足していて、大変申し訳ありません。 Microsoft SQL Server Management Studio Expressにて、データベースを作成し、そのデータベースに一致したレコードで認証できる想定です。 ログイン画面は、よくあるUsernameとPasswordの2つの入力を要求するような画面となっています。 Default.aspxはC#のコードとなっており、 conn = "SELECT first_name + ' ' + last_name + ' ' + middle_name FROM users WHERE username = '" + Request.QueryString["login"] + "' " + "AND password = '" + Request.QueryString["password"] + "'"; という箇所でSQL文が定義されています。 ユーザがUsernameとPasswordを入力後、その2つのパラメータを元にSQL文をデータベースに発行し、一致するレコードがあれば、ログイン成功ということで、ログイン成功!という文字を表示するように条件分岐するようになっています。
Divided_by_Zero

2015/09/17 13:52

あ、一応ですが、先ほど質問を投稿した時はゲストユーザーだったのですが、たった今投稿してここにコメントしています。
Divided_by_Zero

2015/09/17 14:09

上記コメントで間違いがありました。 正確には、Default.aspx.csはC#のコードとなっており、 となります。 Default.aspxとDefault.aspx.csの2つのファイルがあります
Divided_by_Zero

2015/09/17 14:46

今、コードを元に調べているのですが、どうも aspxファイルにてVisible = "False"としても表示されてしまう現象が起きてしまっているようです(実際にブラウザで開いて、ソースを表示でFalseになっているか確認することで検証) これが原因なのでしょうか? aspx.csファイルをいじっても、アクセスしたWebページに全く反映されません。.NET Frameworkを入れたし、C#のコードがaspxファイルに読み込まれているはずなので、理由がよくわからないです。
Divided_by_Zero

2015/09/17 15:25

aspxファイルの先頭で <%@ Page Language="C#" AutoEventWireup="true" ValidateRequest="false" CodeFile="Default.aspx.cs" Inherits="_Default" %> と記述しているのですが、CodeFile="Default.aspx.cs"の部分を試しに消してブラウザで再アクセスしたところ、表示結果が変わりませんでした(ログインフォームが表示されず、ログイン成功しました!と表示される)。 aspxファイルでは、ログインフォームのVisible属性がTrue、ログイン成功しました!と表示する箇所のVisible属性がFalseとなっており、aspx.csファイルでログイン成功した場合の条件分岐でVisible属性を切り替えるようになっているはずなのですが・・・ Visible属性が機能していないのでしょうか・・・
sgr-2

2015/09/17 23:20

情報ありがとうございます。 頂いた内容から考えると、 (1)ログインボタン押下(?)のイベント受け取り (2)入力されたユーザー名、パスワードを利用してSQL Serverへ問い合わせ (3)問い合わせ結果を受け取り (4)結果の判定(OKならVisibleをtrueに変更) の流れになっているように思えますので、これを上から順に潰して行くと良いかと思います。 下のような方法で確認ができないでしょうか (1)ボタンか何かは分かりませんが、トリガとなるイベントを受け取ってすぐに(SQL Server問い合わせをしないで)Visibleをtrueに変更してみる  →期待通りに処理が開始されているか? (2)SQLトレース(Express EditionだとProfilerが含まれていないと思いますので、https://sites.google.com/site/sqlprofiler/などから同様のツールを入手)  →期待しているSQL文がきちんと発行されているか? (3)受け取った結果(SQL)を判定前にTextBoxでも何でも良いので、表示できる要素に表示する  →期待している結果が返ってきているか? (4)判定部分を再度確認してみる 上記で、期待通りになっていないポイントが絞り込めるのではないかと思います。
Divided_by_Zero

2015/09/20 06:21

いろいろ試してみたのですが、C#が読み込まれていない、またaspxファイルの挙動がおかしい(Visibleが機能してない?)ようです。 OSはWindows XP SP2、アップデートを一切行わず、.NETFramework2を用いています。 また、ブラウザはIEを使用しているのですが、IEの不具合か何かなんでしょうか・・・?
Divided_by_Zero

2015/09/20 06:24

ちなみに、IEはデフォルトのままで、バージョン6.0.2900.2180.xpsp_sp2_rtm.040803-2158です。
sgr-2

2015/09/20 11:24

うまく行かないですか・・・ こちらで、簡単な環境を作って確認してみます。 一点、確認になりますが 「Default.aspx.cs」内でVisible値の変更などを記述しているクラスの名前は「_Default」でしょうか?
Divided_by_Zero

2015/09/21 17:12

お手数取らせてしまって、大変申し訳ありません・・・ はい。Default.aspx.csファイルは以下のようになっています。 ```c# public partial class _Default : System.Web.UI.Page { protected SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["test"].ToString()); protected string conn = ""; protected void Page_Load(object sender, EventArgs e) { //usernameとpasswordが入力されていたら、Response.Write()でusername.ToString() + password.ToString()を返し、    //conn = "SELECT first_name + ' ' + last_name + ' ' + middle_name FROM users WHERE username = '" + Request.QueryString["login"] + "' " + "AND password = '" + Request.QueryString["password"] + "'";を定義し、    //Login()関数を呼び出します。    //入力されていなかったら何もしません。 } public void btnSubmit_Clicked(object o, EventArgs e) {     //ボタンがクリックされた際のイベントハンドラで、     //ここで、Visibleによる制御を行ってメッセージを表示させています。     //まず、usernameやpasswordが入力されているかチェックし、されていなかった場合エラーメッセージを表示、どちらも入力されていれば、     //conn = "SELECT first_name + ' ' + last_name + ' ' + middle_name FROM users WHERE username = '" + txtLogin.Text + "' " + "AND password = '" + txtPassword.Text + "'";を定義してLogin()関数を呼び出します。 } public void Login() {     //定義されたconn変数を元に、SQLを実際に実行し、値が得られればログイン成功!と表示されます。 } } ```
Divided_by_Zero

2015/09/21 17:39

なぜ、挙動がおかしかったのか、ハッキリ分かったような気がします・・・ ただ、どうしてそのようなことになったのかがわからないですが・・・(ASP.NET初心者なので、何か設定ミスなどをしたのかもしれません) どうも、aspが動いていないみたいです wwwroot配下に置いて、動作させてみたところHTMLの表示はされましたが、 <asp:...タグで囲まれたフォームや、ボタンは表示されませんでした。
Divided_by_Zero

2015/09/21 17:43

Windowsコンポーネントの追加と削除にて、 IISのチェックボックスから詳細へ、FTPサービスを選択しOK 管理とモニターツールのチェックボックスを選んでOK インストール実行 という手順を踏んだのですが、これではASPは動作しないのでしょうか?
sgr-2

2015/09/22 08:18

こんにちは。 状況ありがとうございます。 頂いた内容から考えると、.NET Frameworkがインストールされていない可能性があるように思えました。 .NET Frameworkはインストールしてありますでしょうか? まだ、インストールしていないようでしたら以下から入手できます。 ・.NET Framework 4.0(XP SP3)  http://www.microsoft.com/ja-jp/download/details.aspx?id=17718 ・.NET Framework 3.5 SP1(XP SP3以前)  http://www.microsoft.com/ja-jp/download/details.aspx?id=25150
Divided_by_Zero

2015/09/22 11:25

こんばんは。 プログラムの変更と削除を確認してみたところ Microsoft .NET Framework 2.0 Service Pack 1が入っているようです(現在インストールされているプログラムの一覧に出てくるので大丈夫だと思います)。 .NET Framework 2.0を使用する予定だったので、意図通りインストールできていると思われます。
sgr-2

2015/09/22 12:09

こんばんは。 なかなか上手く行ってくれないですね・・・ 回答本文の方へ、追記をしました。 私の方でも、仮想マシンでXPを作ってIISを追加、NET Frameworkのインストールをするとテスト用につくった「ログインフォームのaspx」で正常動作を確認出来たのですが。。 .NET Frameworkのバージョンが違ってしまっていますが、以下の組み合わせです Windows XP SP3 + IIS 5.1 + .NET Framework 4.0 + IE 6.0 (まっさらのXP SP3へ.NET Frameworkを足しただけです)
Divided_by_Zero

2015/09/22 12:53

なんと・・・ 試しにブラウザで関係のないaspxファイルを参照させたところ、「ページが見つかりません」と表示され、管理ツールの方も確認してみたところ、ASP.NETというタブはあるものの、バージョンが空欄になってしまっていました・・・
Divided_by_Zero

2015/09/22 12:56

どうやら、IISがうまく認識できていないようですね・・・ これなら、今まで思った通りにならなかったことと合点がいきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問