ここから本文です

ASP.NET(C#)でwebアプリケーションを作成し 発行してIISのサイトとして登録する...

mas********さん

2012/3/1200:08:39

ASP.NET(C#)でwebアプリケーションを作成し
発行してIISのサイトとして登録すると普通に動くのですが
Default Web Site配下にアプリケーションとして登録するとエラーで動きません
何が原因なんでしょう?

VisualStudio2010でASP.NET(C#)でwebアプリケーションを作成し
発行してIISのサイトとして登録すると普通に動くのですが
(発行する前にVS2010上で実行する際も普通に動きます)
IISのDefault Web Site配下にアプリケーションとして登録すると
ログイン画面は出てくるのですがログイン時SQL Serverへ接続するための
SqlConnection con = new SqlConnection();のラインで
NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。]
のエラーが出てしまいます
アプリケーションとしての登録時には何か特別な設定等が必要なのでしょうか?
何でもいいので手がかりになるような情報がありましたらお教えください。よろしくお願いいたします。

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
4,938
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

dot********さん

リクエストマッチ

2012/3/1212:24:34

それはもう完全なDBコネクション・エラーです。
Sqlコネクションをどのような方法で定義したのか不明なので、何ともいえないのですが。。。
ASP.NETだと大昔は手動でSqlConnection.ConnectionStringなんか打ちましたが、今はDataSet、LINQ to SQL、Entity Frameworkなどのウィザード画面で簡単にConnectionが定義できます。
ただその場合、別定義のライブラリなどでConnectionを定義したり、開発中に複数のDBを切り替えたりした場合は、Properties/Settingsリソースに接続が複数表れていて、開発環境中ではこれが自由に切り替わるため動いてしまうのですが、IISでの実運用になると、Web.config中の"configuration/connectionString"の値だけが有効になって、サーバが見つからず、SqlConnectionオブジェクトがnullになった、というオチではないでしょうか?

Web.configのconnectionStringの項目は正しく確認されましたか?
(接続プロバイダの種別によって、表記内容が違っている場合があります。念のため)

<connectionStrings>
<add name="MyApp.Properties.Settings.MyAppConnectionString"
connectionString="Data Source=IPアドレス,ポート;Initial Catalog=DB名;User ID=ユーザ名;Password=パスワード" providerName="System.Data.SqlClient" />
</connectionStrings>

質問した人からのコメント

2012/3/12 15:16:39

降参 ありがとうございました。
仰せの通り
Web.configの周りを確認したところ、System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/");
でルートのWeb.configを取得しに行っていました。

このような取得をしていれば
サイトであればOKで
サイト配下のアプリケーションだとNGになるのは
当然の動作ですね。

貴重なヒントをありがとうございました。
解決いたしました。
ありがとうございます。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる