2015-09-04 87 views
3

我想知道如何自動更改我的應用程序的連接字符串,所以當我在我的電腦上使用它時,它使用我的本地SQL Server,一旦我發佈它,然後使用我在Azure上託管的SQL Server。發佈時更改連接字符串從開發到生產

現在我只是根據我想要的註釋掉連接字符串,我看到Web.Config文件有2個依賴關係,Web.Debug.config和Web.Release.config,這是我猜測的地方必須做點什麼,但我不知道是什麼。

這是我的web.config文件至今

<connectionStrings> 
    <add name="MyApp" connectionString="Data Source=mydb.database.windows.net;Initial Catalog=MyDb;User [email protected];Password=MyPwd;Encrypt=true;Trusted_Connection=false;" providerName="System.Data.SqlClient" /> 
    <!--<add name="MyApp" providerName="System.Data.SqlClient" connectionString="Server=.\SQLEXPRESS;Database=MyDb;Integrated Security=True;" />--> 
    </connectionStrings 

正如你可以看到我有,我有註釋掉2個連接字符串,但這樣做實在是煩人。

回答

2

這兩個配置是爲它們各自的構建設置而構建的,因此您可以將您的dev連接字符串放入Web.Debug.config,並將您的prod連接字符串放入Web.Release.config。然後,當您部署到生產環境時,運行Release版本,生成的Web.Config將具有生產連接字符串。

+0

但是我需要有連接字符串中的web.config文件或只是在Web.Debug.config和Web.Release.config還規定? –

+0

@JGEstevez每個配置都有它自己的連接字符串。您必須在部署時選擇適當的配置文件。 –

2

你可以像

  • web.dev.config
  • web.live.config

分割你的web.config在部署的時候選擇合適的配置文件。 您可以訪問此鏈接瞭解how to manage multiple web.config file in single project.

OR

如果你不想創建多個web.config文件中參考Single web.config file across all environments (dev, test, prod)從CodeProject

+1

使用多個配置文件是最好的選擇。雖然不是OP的要求,但如果某人使用codeproject方法進行多個客戶安裝,即多個部署使用相同的代碼庫,則這不會通過安全審覈,因爲可以在部署的代碼中觀察到其他安裝的機密配置信息。 – JamieMeyer

+0

@JamieMeyer appriciated –