2012-02-22 150 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#代碼連接到數據庫,會出現以下錯誤:

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

您使用的備用解決方案是什麼? – 2017-01-21 01:47:33

回答

5

環境變量在配置文件中。

+0

任何其他方式使用相對路徑? – ahmd0 2012-02-22 01:52:47

0

我不認爲你已經試過:不得使用

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

您會看到數據庫文件位於除我以外的項目中。 – ahmd0 2012-02-22 01:36:46

+0

您是否試過瀏覽並在「數據連接」瀏覽器中選擇它? – pete 2012-02-22 01:57:31

+0

我不想硬鏈接到它。原因是因爲這個項目可能會被移到另一臺具有不同文件路徑的計算機上和從另一臺計算機移出。 – ahmd0 2012-02-22 02:03:13

1

您可以使用:DataDirectory目錄是這樣的:

「Data Source = |DataDirectory|\Mydb.sdf」 

,你可以改變其中DataDirectory目錄點: 「要設置DataDirectory屬性,調用AppDomain.SetData」

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

買者,我從來沒有試過這個。

+0

謝謝。有點笨重,涉及代碼隱藏,但應該工作... – ahmd0 2012-02-22 06:10:01

+0

事情是,如果您需要從某個配置文件中讀取正確的目錄來設置它,那麼您可能只需修改網絡中的連接字符串即可。配置文件。 – 2012-02-22 12:47:46