連線字串設定至Azure Web App的應用程式設定

最近公司新案子須將Web API發布到Azure上,

因此Web.config上的連線字串也希望可透過Azure portal 去設定。

Web API的Model是使用ADO.NET實體資料模型而且是以Database First

所以連線字串將會是

metadata=res://*/IoTCloudModel.csdl|res://*/IoTCloudModel.ssdl|res://*/IoTCloudModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:WebAppName.database.windows.net,1433;initial catalog=DBName;persist security info=True;user id=username;password=password;MultipleActiveResultSets=True;App=EntityFramework"

將連線字串設定到Azure 上並且按下儲存

呼叫Web API卻無對資料庫做任何變更。

後來發現連線字串中的"設定至應用程式設定中須改為"

metadata=res://*/IoTCloudModel.csdl|res://*/IoTCloudModel.ssdl|res://*/IoTCloudModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:WebAppName.database.windows.net,1433;initial catalog=DBName;persist security info=True;user id=username;password=password;MultipleActiveResultSets=True;App=EntityFramework"

然後將SQL Database改為自訂並且按下儲存

重新執行Web API即可正常運作

 

參考連結

http://stackoverflow.com/questions/31149693/setting-ef-connection-string-in-azure-web-app