- PR -

オブジェクト参照がオブジェクト インスタンスに設定されていません

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-09-10 07:20
ありがとうございます。

では、さかもとさんの「接続文字列」か、どっとねっとふぁんさんの、「ファイルのアクセス権」が、怪しいですね。
後者の方は、Access のファイルに対し、とりあえず everyone に full access 権を与えてみてください。これで行けたなら、テストまでに「プロセスを偽装」する方法を調べ、適切なアクセス権を設定して下さい。
shellken
会議室デビュー日: 2008/09/09
投稿数: 11
投稿日時: 2008-09-10 09:56
「接続文字列」はどのようにして調べればよいのでしょうか?

「ファイルのアクセス権」に関しては、コントロールパネルから「ツール」→「フォルダオプション」→「表示」→「簡易ファイルの共有を使用する」のチェックを外し、C:\intepub\App_Dataを右クリック、「アクセス許可」クリックしeveryoneのところをフルコントロールを許可にチェックすればいいのでしょうか?
あと「セキュリティ」タブ「WEB共有」タブも共有するようにしてありますが
うまくいきません。

「プロセスを偽装」する方法っていうのはどういう意味でしょうか?
ひでたつ
常連さん
会議室デビュー日: 2002/08/09
投稿数: 28
お住まい・勤務地: 岩手県
投稿日時: 2008-09-10 10:45
「接続文字列」は、Access のファイルをプロジェクトに追加した時のプロパティに無いですか?
項目名は ConnectionString か何かで、mdb ファイルのパスがあると思いますので
このパスが別パソコン上で一致しているかどうか。

あと、IIS の方の設定はどうでしょうか?

「仮想ディレクトリ」タブの[書き込み]をチェックしているか。

「ASP.NET」タブの[ASP.NET バージョン] がビルドしたバイナリと一致しているか。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2008-09-10 12:21
コード:

[NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。]
予約DataSetTableAdapters.予約TableAdapter.InitConnection() +56



まずは、例外が発生しているInitConnection()のコードを確認しましょう。
予約DataSet.Designer.cs にあるはずです。

[ メッセージ編集済み 編集者: todo 編集日時 2008-09-10 12:22 ]
shellken
会議室デビュー日: 2008/09/09
投稿数: 11
投稿日時: 2008-09-10 14:43
IISを一度削除してもう一度IISを入れたところ、以前のIISには、自分で作った仮想フォルダ(名前をyoyakuとしておきましょう)でAdminScripts iissamples mailroot Script wwwroot のフォルダをいらないフォルダだと思って消去していました。
しかしあたらしいIISの状況でhttp://localhost/...で実行すると
今までのエラーの代わりに、「更新可能なクエリであることが必要です」とのエラーが出るようになりました。
エラーの場所は同じくta.updateの部分です。
また開発環境下ではきちんと動作しますのでやはりAccessのフルコントロールチェックとかサーバ環境が問題だとは思いますがいかがでしょうか。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-09-10 14:55
>「更新可能なクエリであることが必要です」とのエラーが出るようになりました。

ファイルのアクセス権のチェックは?
このエラーメッセージならアクセス権の問題だと思うけど。
shellken
会議室デビュー日: 2008/09/09
投稿数: 11
投稿日時: 2008-09-10 15:41
ファイルのアクセス権のチェックはどのようにすればいいのでしょうか?
App_Dataフォルダ右クリックし「プロパティ」で出てくるところで「共有する」などをチェック入れるとかすればいいのでしょうか?
ひでたつ
常連さん
会議室デビュー日: 2002/08/09
投稿数: 28
お住まい・勤務地: 岩手県
投稿日時: 2008-09-10 16:35
プロパティの「セキュリティ」タブを選択する。
1.[追加]ボタンを押す。
2.「ユーザーまたはグループの選択」画面になるので
  選択するオブジェクト名を入力してください:
  に Everyone と入力する。
3.[OK]ボタンを押す。
4.ここでプロパティ画面に戻っているので
  「フル コントロール」の右側にある「許可」のチェックボックスをオンにする。
5.[OK]ボタンを押す。

Everyone をフルコントロールにするのはプログラムの動作確認のためです。
これで例外が出なくなったら、プロパティから Everyone を削除して
適切な権限を設定して下さい。

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