- PR -

ランタイムエラーについて

投稿者投稿内容
Jetta
常連さん
会議室デビュー日: 2008/10/15
投稿数: 44
投稿日時: 2008-11-14 03:08
VS2005 ASP.NETで開発しています。

今まで、ローカルで作成し実行しており、昨日サーバーにプログラムを移し、WEB上から実行したのですが、以下のようにランタイムエラーとなってしまいました。

ローカルでは問題なく動作していたのですが、サーバーで実行すると、画面が表示されるところまで行かず動作せず悩んでおります。
プログラムは同一のものなのですが、どのようなことが考えられるでしょうか?

=====エラーの内容をコピペします===========================================
'/zaiko' アプリケーションでサーバー エラーが発生しました。
--------------------------------------------------------------------------------

ランタイム エラー
説明: サーバーでアプリケーション エラーが発生しました。このアプリケーションの現在のカスタム エラー設定では、セキュリティ上の理由により、アプリケーション エラーの詳細をリモート表示できません。ただし、ローカル サーバー コンピュータで実行されているブラウザで表示することはできます。

詳細: このエラー メッセージの詳細をリモート コンピュータで表示できるようにするには、現在の Web アプリケーションのルート ディレクトリにある "web.config" 構成ファイル内に、<customErrors> タグを作成してください。その後で、この <customErrors> タグで "mode" 属性を "off" に設定してください。


<!-- Web.Config 構成ファイル -->

<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>


メモ: 現在表示されているエラー ページをカスタム エラー ページ に変更するには、アプリケーションの <customErrors> 構成タグの "defaultRedirect" 属性をカスタム エラー ページ URL に置き換えます。


<!-- Web.Config 構成ファイル -->

<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
==========================================================================


どなたか同様なご経験をされた方等、おられましたらご教授をお願い致します。
Shane
大ベテラン
会議室デビュー日: 2003/06/06
投稿数: 132
お住まい・勤務地: Vancouver, BC
投稿日時: 2008-11-14 05:53
サーバー上のブラウザで実行するとエラーの詳細が出るのではと思います。サーバーは自由に使えますか?もっといえばサーバー上でデバッグしてしまうとか。
もん吉
常連さん
会議室デビュー日: 2008/05/16
投稿数: 36
投稿日時: 2008-11-14 06:06
表示されたエラーメッセージ通り
Web.Configの設定を

<customErrors mode="Off"/>

に設定すれば詳細なエラー内容が画面上に表示されると思うので
それを確認してみてはいかがでしょう。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-11-14 09:19
引用:
プログラムは同一のものなのですが、どのようなことが考えられるでしょうか?


ローカルとサーバーの環境が同一では無いのではないでしょうか。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-11-14 10:33
> ローカルとサーバーの環境が同一では無いのではないでしょうか。

ローカルで実行していた、というのはVSを利用した開発サーバ上で実行していたということでしょうか。
であれば、開発サーバとIISでは環境は異なりますので、動かないことは十分ありえます。
開発サーバとIISで最も違う部分は実行しているアカウントの権限です。
このため、ファイルを直接さわっていたりするとまず間違いなく動かなくなります。

なにが問題かは他の方が書いているように、エラーメッセージの詳細を表示させるようにして確認してください。
Jetta
常連さん
会議室デビュー日: 2008/10/15
投稿数: 44
投稿日時: 2008-11-14 14:04
Shaneさん、もん吉さん、Kingさん、どっとねっとふぁん
皆さん、沢山のアドバイスありがとうございます。

⇒Shaneさん
 サーバー上で動かしたのですが、やはりエラーの表示は最初のものと同一でした。

⇒もん吉さん
 Web.Configの設定をエラー内容のようにやったのですが、、やはりエラーの表示は最初の物と同一でした。

⇒Kingさん
 IIS、AJAX(を使用しているので)の設定を行い、環境は同一の(つもり)です。
 
⇒どっとねっとふぁん
 >開発サーバとIISで最も違う部分は実行しているアカウントの権限です。
 そうですか、分かりました。
 恥ずかしながら、私はWEBの開発をし始めてまだ1ケつき程の初心者なのですが、このアカウントの権限はどのようにして確認すれば良いのでしょうか?

 >このため、ファイルを直接さわっていたりするとまず間違いなく動かなくなります。
 色々とやっていて、他にも問題が起きています。
 それは、画面でテーブル(SQLserver)を更新するのですが、更新すると「読込み専用」になっているので更新できませんとのエラーが出て困っています。 
 この辺りもこの権限と関係がありますかね???

まずはお礼と報告まで。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-11-14 15:12
> それは、画面でテーブル(SQLserver)を更新するのですが、更新すると
>「読込み専用」になっているので更新できませんとのエラーが出て困っています。 
> この辺りもこの権限と関係がありますかね???

開発環境でApp_Dataフォルダにできたmdfファイルをそのままサーバ上に持っていっている状態だと思います。
サーバにSQL Express がインストールされているのであれば、App_Dataフォルダ、およびmdf/ldfファイルに適切なアクセス権(ASP.NETの実行時ユーザの変更権限)を与えてあげればとりあえずは動くかと。

ただ、この形(ユーザインスタンスを利用)だとデータベースの管理とかが難しかったんじゃないかな。
これは開発を簡便にするための方法でしかないと思います。

運用していくなら、データベースのこともきちんと勉強して、一般的な形で動作するようにデータベースを構築すべきだと思います。

#まぁ、そのために利用するのがSQL Expressでもいいとは思いますけど。
Jetta
常連さん
会議室デビュー日: 2008/10/15
投稿数: 44
投稿日時: 2008-11-15 23:57
どっとねっとふぁんさん

アドバイスありがとうございました。

>開発環境でApp_Dataフォルダにできたmdfファイルをそのままサーバ上に持っていって
>いる状態だと思います。
>サーバにSQL Express がインストールされているのであれば、App_Dataフォルダ、
>およびmdf/ldfファイルに適切なアクセス権(ASP.NETの実行時ユーザの変更権限)を
>与えてあげればとりあえずは動くかと。

はい、仰ると通りで、アプリケーションフォルダー全体をそのままサーバーに持っていってます。

また、どっとねっとふぁんさんの仰るように、もっともっとデータベースのことを勉強しなくてはならないのも分かっています。
が、DBのことやプログラムのことを含め、今回の開発は全てが初めてで、基本を勉強するより実践で覚えろ!的な感じの指示で行っています。
(・・・変な事を言ってすいません・・・)

また、
>一般的な形で動作するようにデータベースを構築すべきだと思います。
とのアドバイスを頂きましたが、一般的な形がApp_Dataフォルダ配下に作るものと思っていましたが、サーバー上ではこのフォルダーで運用するのは一般的ではないのでしょうか(プログラムの部分とDBの部分をどのように構成すればよいのでしょうか)?

何度もすいませんが、よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)