プロが教えるわが家の防犯対策術!

こんにちわ。

Web Developerにて作成したASP.NETアプリケーションをWEBサーバに配置して実行した所、以下のエラーが表示されました。

-----------------------------エラー内容始まり----------------

'/WEB' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

構成にエラーがあります。
説明: この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下のエラーの詳細を確認し、構成ファイルに変更を加えてください。

パーサー エラー メッセージ: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。

ソース エラー:


行 53: を有効にします。
行 54: -->
行 55: <authentication mode="Windows"/>
行 56: <!--
行 57: <customErrors> セクションは、要求の実行中にハンドル


ソース ファイル: D:\web\test\sample\web.config 行: 55


--------------------------------------------------------------------------------
バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.42; ASP.NET バージョン:2.0.50727.210

---------------------------------エラー内容 終わり-------------------------------
なので仮想ディレクトリを作り直してみましたが結果は同じです。

手順は以下の通りです。

1、スタートメニューより [インターネットインフォメーションサービス (IIS) マネージャ] を選択する

2、画面左側のツリーから「規定の Web サイト」を右クリックして、[新規作成] → [仮想ディレクトリ] を選択する

3、「仮想ディレクトリの作成ウィザード」でエイリアスを入力し、[次へ] をクリック。

4、仮想ディレクトリを指定する
  3で入力したエイリアスの仮想ディレクトリの場所を指定します。

5、アクセス権を設定する (ASPなどのスクリプトを実行するにチェック)

6、ウィザードを完了する。


環境はWindows2000サーバー IIS5.0です。
SDKは入っておりません。。。

お気づきの点がありましたらご教示下さいませ。
宜しくお願い致します。

A 回答 (3件)

とりあえず、Web.config修正したら、エラーが出るようになりましたね。



Webの仕組みを理解して頂きたいのですが、
MsgBoxを書いている箇所は「Webサーバー側」の処理になります。
「Webサーバー側」でMsgBoxは、使用できません。

また、Web Developer で、MsgBoxが通ったのは、
Webサーバーとクライアントが同じPCだからです。

Webサーバーとクライアントが別PCになった時、MsgBoxは
動きませんので、それでエラーになったんじゃないかと思います。

その代わり、クライアント側の処理で、JavaScriptを使って
alert(VBでいうMsgBoxとほぼ同じ)を使えば、
メッセージが出力されるようになります。

詳しくは、
http://moo-asp.net/wiki/NWiki.aspx?page=MsgBox
をご覧下さい。

参考URL:http://moo-asp.net/wiki/NWiki.aspx?page=MsgBox
    • good
    • 0
この回答へのお礼

kero_mioさん

ありがとうございます☆
スクリプトの問題だったのですね。。。

アプリケーションが動く様になって本当に助かりました♪

感謝しております!
ご丁寧にご教示頂きましてありがとうございます。

URL参考にさせて頂きます!

お礼日時:2007/09/20 23:04

補足ありがとうございます。



えーと、恐らく、allowDefinition='MachineToApplication' と
あるので、Web.configではなく、machine.config の設定を
参照してますね。

どんなWebアプリを作りたいのかわからないので、
machine.config をどこまでいじっていいものなのか判断
つきませんが、Web.config の55行目
<authentication mode="Windows"/> の部分を
削除して、Web.configを保存してみてください。
その後、Webアプリを動かしてみてください。

# 予想では、正常に動くか、もしくはまったく別のエラーが
  出るのではないかと思います。

この回答への補足

ありがとうござます☆
ご教示頂いた通りに行った所、aspxが表示されました。

もう1点だけ教えて下さい。

テストでボタンを押下するとIPアドレスが表示されるアプリケーションで
試したところ以下のエラーが出たのですがこれはどの様な問題なのでしょうか?

Web Developerではうまく起動していたのですが。。。

お手数ですが再度、ご教示下さいませ。



'/test' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

アプリケーションが UserInteractive モードで実行されていないときに、モーダル ダイアログまたはフォームを表示することは有効な操作ではありません。サービス アプリケーションからの通知を表示するには、ServiceNotification または DefaultDesktopOnly スタイルを指定してください。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.InvalidOperationException: アプリケーションが UserInteractive モードで実行されていないときに、モーダル ダイアログまたはフォームを表示することは有効な操作ではありません。サービス アプリケーションからの通知を表示するには、ServiceNotification または DefaultDesktopOnly スタイルを指定してください。

ソース エラー:


行 17: ipAddr = ip.AddressList(0)
行 18:
行 19: MsgBox(ipAddr.ToString(), MsgBoxStyle.OkOnly)
行 20:
行 21: End Sub


ソース ファイル: D:\web\test\web\Data\IPAddressConfirmation.aspx.vb 行: 19

スタック トレース:


[InvalidOperationException: アプリケーションが UserInteractive モードで実行されていないときに、モーダル ダイアログまたはフォームを表示することは有効な操作ではありません。サービス アプリケーションからの通知を表示するには、ServiceNotification または DefaultDesktopOnly スタイルを指定してください。]
System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean showHelp) +1801618
System.Windows.Forms.MessageBox.Show(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options) +26
Microsoft.VisualBasic.Interaction.MsgBox(Object Prompt, MsgBoxStyle Buttons, Object Title) +544
IPAddressConfirmation.Button1_Click(Object sender, EventArgs e) in D:\web\mcs\with\wF_Osm_Data\IPAddressConfirmation.aspx.vb:19
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102




--------------------------------------------------------------------------------
バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.42; ASP.NET バージョン:2.0.50727.210

補足日時:2007/09/19 10:28
    • good
    • 0

えーと、まず、「D:\web\test\sample\web.config 行: 55 」


とWeb.configの書き方に問題があるというエラーが出ているのですから、
Web.config の55行目にどんな記述があるか確認してみてください。

Web.configのことがよくわからなければ、可能な範囲で構いませんので、
Web.configの55行目 前後の記述内容を教えて下さい。
仮想ディレクトリうんぬんの話より、まずはエラーの原因を追究する方が、先なのではないかと思います。

この回答への補足

>仮想ディレクトリうんぬんの話より、まずはエラーの原因を追究する方が、>先なのではないかと思います。
おっしゃる通りです。

web.configは以下の記述になります。
宜しくお願い致します。

<?xml version="1.0"?>
<!--
メモ: このファイルを手動で編集する代わりに、Web 管理ツールを使用
してアプリケーションの設定を構成することができます。Visual Studio
の [Web サイト] メニューにある [ASP.NET 構成] オプションから設定
を行ってください。設定およびコマンドの一覧は、通常
\Windows\Microsoft.Net\Framework\v2.x\Config にある
machine.config.comments で確認できます。
-->
<configuration>
<appSettings/>
<connectionStrings>
<add name="WebConnectionString" connectionString="Data Source=WEB;Initial Catalog=Web;Persist Security Info=True;User ID=id;Password=pass"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<!--
デバッグ シンボルをコンパイルされたページに挿入するに
は、compilation debug="true" に設定します。この設
定はパフォーマンスに影響するため、開発時のみこの値
を true に設定してください。

Visual Basic オプション:
データの損失が発生する可能性のあるすべてのデータ型
の変換を無効にするには、strict="true" に設定します。
すべての変数の定義を強制するためには、explicit="true"
に設定します。
-->
<compilation debug="true" strict="false" explicit="true"/>
<pages>
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<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>
<!--
<authentication> セクションは、ユーザーを識別するため
に、ASP.NET で使用されるセキュリティ認証モードの構成
を有効にします。
-->
<authentication mode="Windows"/>
<!--
<customErrors> セクションは、要求の実行中にハンドル
されていないエラーが発生した場合の処理方法の構成を
有効にします。具体的には、開発者が HTML エラー ペ
ージをスタック トレースのエラーの代わりに表示するように構
成することを可能にします。

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<customErrors mode="Off"/>
</system.web>
</configuration>

補足日時:2007/09/16 20:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています