配置後にSQLのエラーを消したい
デバッグでは問題なく動作するのですが
IISに配置したらSQLの接続エラーになる
試したこと
IISは、トップページは問題なく表示されているのでIISは問題無いと判断
デバッグでデータ登録、SQLエクスプレスにはSQLマネージャーでデータが登録されたことを確認
SQLのネットワーク設定
ポート、外部接続、TCP設定などをして
接続のServer名入れるところでIPアドレスでログイン出来る
これでSQLネットワーク設定は問題無い?
サーバーのエラーログはLocalDBでエラーログが出ている
これって、SQLexpress参照していないと言うことでしょうか?
Web.config
1 <connectionStrings> 2 <add name="MyDatabase" connectionString="Data Source=localhost\sqlexpress;Initial Catalog=MyDatabase;Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> 3 </connectionStrings>
知りたいこと
本番環境(配置後)でSQLexpressに接続させる方法を知りたいです
3月29日17時以降追加作業
SQL設定変更=>名前付きパイプを有効
Web.config=>localhost から自分のIPアドレスに変更
lmhosts.samの変更=>160.251.95.17 160-251-95-17 #PREを追加
※自分学習用のテスト環境なのでIPばれても問題ないです
PING確認
エラーログ記載
- LocalDB インスタンスのレジストリ構成にアクセスしているときに予期しないエラーが発生しました。エラーの詳細については、Windows アプリケーション イベント ログを参照してください。
- ローカル アプリケーション データ パスを取得できません。多くの場合、ユーザー プロファイルを読み込めない可能性があります。LocalDB を IIS で実行している場合は、現在のユーザーのプロファイルの読み込みが有効になっていることを確認してください。
- Windows API 呼び出し SHGetKnownFolderPath はエラー コードを返しました: 5。Windows システム エラー メッセージ: アクセスが拒否されました。
。行: 427 での応答。
ひどい情報不足です。不足していること全部をいちいち聞くのも大変なのでまず一番重要な情報と思われることを 2 つ聞きます。
> サーバーのエラーログはLocalDBでエラーログが出ている
エラーメッセージを質問欄を編集して追記してください。
もう一つ、MVC アプリに設定してある接続文字列を書いてください。
申し訳ない、外で消したいスマホで書いたので情報量少なくなってしまいました
サーバーのエラーログにSQLLocalとあるのは、SQLexpressでも同じでしょうか?
expressなら別のタイトルなのでは?
expressでも同じエラーのタイトルならSQLの設定、DBの切り替えが出来て無い説もあると思うし、
エラーログのタイトルがexpressでSQLLocalでは無いならDBの切り替えは成功していているので、SQLの設定の問題なのか?
問題の切り分けが出来るか?と思い質問しておりました
> 問題の切り分けが出来るか?と思い質問しておりました
できません。
こんなことではなかろうかと想像はしてますが、想像ベースで答えて想像が違っていると混乱を招くばかりなので、まずはあなたが上の質問に答えてください。
そうなのですね、勉強になります
出先なので帰ったらエラーログ遅らせていただきます
よろしくお願い致します
確認ですが、ConnectionString記載の内容で、
「Data Source=サーバの名前\SQLEXPRESS;Initial Catalog=データベース名;User ID=・・・」
で、VSで、デバッグ検証して動作していたものをIISに配置したらエラー。
これを、
「Data Source=IPアドレス\SQLEXPRESS;Initial Catalog=データベース名;User ID=・・・」
にして、配置すると接続できる、ということを想定して回答します。
lucky-ponta さん>
質問者さんは「出先なので帰ったらエラーログ遅らせていただきます」とのことですので、それまで待ちましょう。想像ベースで答えて想像が違っていると混乱を招くので。
追加情報が意味不明です。
エラーメッセージ「LocalDB インスタンスのレジストリ構成にアクセスしているときに・・・」を見るとLocalDB に接続に行って失敗しているようですが、Web.config の接続文字列はローカルの SQL Express が指定してあります。
どうなってるんですか?
今出しているログは、3月29日17時以降追加作業のタイトルの作業後のログになります。
なのでweb.configはIP指定からの指定になります。
ちなみに160-251-95-17\SQLEXPRESSに変更しても同じく状況変わりませんでした
160-251-95-17はping通りました
> 今出しているログは、3月29日17時以降追加作業のタイトルの作業後のログになります。
> なのでweb.configはIP指定からの指定になります。
言ってることが理解できません。
とにかく先に書いた以下の矛盾がどういうことか答えてください。
エラーメッセージ「LocalDB インスタンスのレジストリ構成にアクセスしているときに・・・」を見るとLocalDB に接続に行って失敗しているようですが、Web.config の接続文字列はローカルの SQL Express が指定してあります。
Data Source の設定とか ping が通ったかどうかは、上のことがクリアになってからの話です。
配置しているconfigもちゃんとExpress指定されてるんです
やっぱりLocalDBに接続しに行っているという事でしょうか?
解らないなりにいろいろと設定をしたので謎の設定をしてしまったのかも知れないです・・・・
矛盾を説明しろと言われても、なぜこうなっているのか?わかってない状態です。
なので、前にも書きましたがDBの切り替え作業が出来ているのか?LocalDBにアクセスしているのか?切り分けが出来るのではないか?と予測を聞いておりました。
話が通じない・・・
> やっぱりLocalDBに接続しに行っているという事でしょうか?
接続文字列で LocalDB を指定しない限り LocalDB に接続に行くということはありません。開発環境でLocalDB を使っていて、その設定が運用環境でもそのままになっているのでは?
> 解らないなりにいろいろと設定をしたので謎の設定をしてしまったのかも知れないです・・・・
いろいろやったことを書いているようですが、それでは閲覧者・回答者がついていけません。
色々変えるのは止めて、今現在の設定に固定して、そこからもういじらないで、その設定で試して、エラーメッセージがどうなるかと接続文字列を書いてください。
質問者さん、ギブアップですか? それならそれで構いませんので、その旨書いてこのスレッドはクローズしてください。
まだやる気があるなら、上に書いたように、色々変えるのは止めて、今現在の設定に固定して、そこからもういじらないで、その設定で試して、エラーメッセージがどうなるかと接続文字列を書いてください。
質問に書かれた接続文字列は SQL Server Express に接続するもので、それで LocalDB ナンチャラというエラーが出るはずはないのです。それなのに、なぜ LocalDB ナンチャラというエラーが出るのか、そこをクリアにしないと先に進めません。

