3

これはMVC 3よりも接続文字列の問題だと思います。MVC 3 ASPNETDB.MDF Webホスティング上のSqlExpressデータベース接続文字列

新しいユーザーを登録するときに作成されるデフォルトのデータベースを使用して、MVC 3でWebサイトを作成しました。それは私が次のエラーが表示され、私のウェブホスティング上の上質な地元なく動作します:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

デフォルトの接続文字列は次のとおりです。

<connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" 
    providerName="System.Data.SqlClient" /> 
    <add name="ASPNETDBConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" 
    providerName="System.Data.SqlClient" /> 

私は明示的との接続文字列を指定する必要がありますサーバーのIPアドレスまたは。\ SQLEXPRESSコマンドを保持しますか?ユーザー名とパスワードを指定する必要がある場合、どうすればよいですか?以前はローカルのSQLExpressデータベースを使用したことがなかったので、私は無名です(私は確信しています)。一般

+1

Webホスティングでは、データベースはどこにインストールされていますか?それはSQL Expressもインストールされていますか? – BonyT

+0

データベースはApp_Dataディレクトリにあります。Webホスティングでは「SQL Management Expressがサポートされています」と表示されますが、コントロールパネルからは設定方法がわかりません – pfeds

+0

ホスティングプロバイダがSQL Server Expressをサポートしていないことが判明したので、とにかく標準のSQLデータベースを作成する必要があります。助けてくれてありがとう – pfeds

答えて

2

あなたはSQL Expressを使用できない場合、あなたは組み込みSQLエンジンを検討することもできは:

SQL Compact EditionまたはSQLLite

私は、SQL CEを使ったことがないが、SQLLiteは1つだけのDLLです。

完全に本格的なデータベースエンジンのすべての機能を備えているわけではありませんが、依然としてかなり強力です。

+0

優秀な代替、ありがとう。私はSQLLiteがすてきな解決策でなければならないとは思わない。 – pfeds

1

あなたが特定のIPアドレス、ユーザー名、パスワードで接続文字列を使用する必要があるでしょう、などあなたがホスティングしている

?一般に.netホストプロバイダは、データベースへの接続に使用する接続文字列を提供します。 web.configにコピーして貼り付けることができます。また、データベースを作成する際には、通常、ユーザー名、パスワード、およびデータベース名を指定するので、それらのすべてを変更する必要があります。

これはビジュアルスタジオで、Web.config.debugとWeb.config.Releaseにxml変換が含まれています。この方法でサイトにパブリッシュすると、接続文字列はローカル接続文字列から運用環境で使用される接続文字列に自動的に変更されます。

1

おそらくこの記事に従う必要がありますか? "| DataDirectoryの| ASPNETDB.MDF AttachDBFilename ="

その後、独自のDBを作成して、今、あなたはそのデータを格納するために2つのDBのを使用している

http://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs

Deafault ".NETは" アプリケーションサービスをインストールします1つに収まるかもしれません。

上記の記事を読むと、すべてを1つのDBにまとめる方法がわかります。

ホスティング・サーバーにデプロイすると(使用できるDBの数に制限があり、sqlexpressを使用することができない、または実行していない)、DBは接続されません。したがって、web.configファイル(通常はDebugとRelease)のための "トランスフォームファイル"を作成する必要があります。これは基本的に別のweb.configですが、サイトがホスティングにデプロイされたときに変更する必要があるconfig行だけですサーバ。

したがって、ホスティングプロバイダはサーバー上の接続文字列に必要な詳細を提供します。次に、それを "web.config"に入れます。リリースファイルをコンパイルして公開すると、正しい接続文字列データを持つweb.configファイルが作成されます。

関連する問題