2

意見や提案をいただければ幸いです。

数年間、Wild West がホストする共有 Apache サーバーに格納された html と javascript の Web サイトを持っていました。最近、これを .NET 3.5 に移行し、これも Wild West がホストする共有 Windows IIS7 サーバーに配置することにしました。Visual Studio 2008 を使用してすべてのページを書き直し、役割管理を追加し、役割ベースのセキュリティ トリミングを有効にしたサイトマップ制御のメニュー ツリーを追加し、ディレクトリを保護しました。この時点で、それぞれに 1 つまたは 2 つのファイルしかない、保護されたディレクトリがいくつかある半ダースのページがおそらくあります。シンプルなサイト。

VS2008 の ASP.NET 構成ツールを使用して、サイトマップ内のすべてのロール名に一致するユーザーとロールを作成し、ユーザーなどが App_Data/ASPNETDB.MDF データベースの aspnet_ テーブルにあることを確認しました。サイトはローカル マシンで正常にレンダリングされます。Login.aspx ページでは、ユーザーがログインできるようになり、それに応じてメニュー ツリーが調整され、それに応じてログイン ステータス コントロールが調整され、ユーザーが適切にリダイレクトされます。すべてが設計どおりに機能します。

Wild West (以前の GoDaddy) との共有 Windows ホスティング アカウントを取り出し、ASPNETDB テーブルとデータを .sql ファイルにエクスポートして MS SQL サーバー上に再作成し、提供された接続文字列を使用するように web.config の接続文字列を編集しました。その後、FileZilla を使用して、ファイルとフォルダーを Windows サーバーに ftp/コピーしました。.aspx ページは問題なくレンダリングされますが、ユーザー名とパスワードを使用してログインしようとすると、SQL 例外がスローされます。これはかなりあいまいな例外メッセージです:

サーバーへの接続を確立中にエラーが発生しました。SQL Server 2005 に接続する場合、このエラーは、既定の設定では SQL Server がリモート接続を許可しないことが原因である可能性があります。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

Wild West の技術サポートは、データベースを削除して再作成し、リモート接続が許可されていることを確認し、接続文字列情報が正しいことを確認しましたが、ログインしようとすると例外がスローされます. さて、奇妙な部分があります。接続情報をページのコード ビハインドにハード コードすると、データベースに正常に接続して情報を抽出できます。したがって、データベースは Web サーバーから到達可能です。

それで、私は疑問に思い始めました...ページ、コードビハインドファイル、およびフォルダーをビルドしてからコンパイル済みバージョンをサーバーにコピーするのではなく、単にサーバーにコピーしたことが問題なのですか? HTML は .NET とは大きく異なり、Apache サーバーは IIS7 とは大きく異なります。IIS7 にコピーされたコンパイルされていないサイトは、最初の要求でサーバーによってコンパイルされることをどこかで読んだことがありますが、そうではない可能性があります。サーバー上のフォルダー構造には BIN フォルダーが含まれていないため、実際にはサーバーがサイトを構築していないと思われます。そこからファイルとフォルダーを削除し、ローカル コンピューターでサイトを構築してから、構築したバージョンをサーバーにコピーする必要がありますか? これがエラーメッセージの原因でしょうか?

あなたが与えることができる情報をありがとう。楽しいホリデーシーズンをお過ごしください。

ジョン

4

2 に答える 2

2

あなたが見ている問題が、あなたのウェブサイトの展開方法と関係があるとは思えません. Web サイトをまだ公開していない場合、IIS は最初の要求で Web サイトを自動的にコンパイルします。いつでも公開してすべてのライブラリをサーバーにコピーすることができますが、これで問題が解決するとは思いません。

私には、Web サーバーからデータベース サーバーに到達できないという問題のように思えます。

ユーザー名/パスワードなしで、使用している接続文字列を投稿していただけますか?

于 2008-12-19T19:31:00.333 に答える
1

問題は修正されました。それはマルチパートの問題でした。接続文字列セクションには、ホスティング会社から継承されたものをすべて消去する要素が必要でした。ロールとメンバーシップのセクションは、データを取得するために接続文字列を参照していませんでした。そして、ログイン コントロールはそこにあるはずのユーザー名を見つけられなかったので、見つからない場合にユーザーを追加する Global.asax ファイルを追加しました。問題とプロセス全体は、次のリンクに投稿されています: asp.net フォーラムの投稿

于 2008-12-21T20:35:30.310 に答える