2012-02-22 13 views
4

ASP.NET web.configファイルでカスタム環境変数を使用できないのはなぜですか?ASP.NET web.configファイルの環境変数

<?xml version="1.0"?> 
<configuration> 
    <connectionStrings> 
    <add name="ConnectionName" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename='%MyProjectsFolder%\WebAppName\App_Data\Database1.mdf';User Instance=true" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 

[スタート] - > [ファイル名を指定して実行]で、.mdfファイルへのファイルパスが有効であることを確認しました。

私はデータベースに接続するために私のC#のコードを実行すると、私は次のエラーを取得する:

connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename='~/App_Data/Database1.mdf';User Instance=true" 
+0

あなたが使用した代替ソリューションは何ですか? –

答えて

5

環境変数を使用することはできません。

An attempt to attach an auto-named database for file %MyProjectsFolder%\WebAppName\App_Data\Database1.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

+0

他の方法で相対パスを使用できますか? – ahmd0

0

私はあなたが試したと仮定していません設定ファイルに保存します。

を使用でき
+0

データベースファイルが私以外のプロジェクトに配置されています。 – ahmd0

+0

ブラウズして「データ接続」ブラウザで選択してみましたか? – pete

+0

私はそれにハードリンクしたくありません。その理由は、このプロジェクトが異なるファイルパスを持つ別のコンピュータとの間で移動する可能性があるためです。 – ahmd0

1

:このようDataDirectoryのを:

“Data Source = |DataDirectory|\Mydb.sdf” 

そして、あなたはどこのDataDirectoryポイントを変更することができます: "AppDomain.SetDataを呼び出し、DataDirectoryのプロパティを設定するには、"

http://social.msdn.microsoft.com/Forums/en/sqlce/thread/dc31ea59-5718-49b6-9f1f-7039da425296

警告、私はこれを試みたことはありません。

+0

ありがとうございます。コードビハインドを含むちょっと厄介なものですが、うまくいくはずです... – ahmd0

+0

問題は、設定するためにいくつかの設定ファイルから正しいディレクトリを読み込む必要がある場合、ウェブ上の接続文字列を変更するだけだったかもしれません。設定ファイル。 –