最近公司新案子須將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