将我的网站发布到azure时,会添加一个额外的连接字符串,其原始名称后附有_datapublish。
如何阻止这种情况发生?我很高兴使用web.config转换来管理我的连接字符串。
<connectionStrings>
<add name="MyAppContext" connectionString="Server=tcp:sdfdfsfsdf.database.windows.net,1433;Database=MyApp;User ID=xxxxxxx;Password=xxxxxxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SqlClient" />
<add name="StorageConnectionString" connectionString="DefaultEndpointsProtocol=http;AccountName=MyApp;AccountKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
<add name="MyAppContext_DatabasePublish" connectionString="MyAppContext_DatabasePublish.ConnetionString" providerName="System.Data.SqlClient" />
</connectionStrings>
我现在在实际网站上收到以下错误:
初始化字符串的格式不符合从索引0开始的规范。
比较发布的文件时,我注意到这也是在entityFramework部分下添加的:
<contexts>
<context type="MyApp.Data.MyAppContext, MyApp.Data">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[MyApp.Data.MyAppContext, MyApp.Data], [MyApp.Data.Migrations.Configuration, MyApp.Data]], EntityFramework, PublicKeyToken=b77a5c561934e089">
<parameters>
<parameter value="MyAppContext_DatabasePublish" />
</parameters>
</databaseInitializer>
</context>
</contexts>
答案 0 :(得分:1)
在这里找到答案......
Publish ASP.NET MVC 5 website to Windows Azure
datapublish内容仍在web.config中,但是当我再次运行应用程序时,不会抛出任何异常。至少在部署之后不再需要每次编辑文件。
答案 1 :(得分:1)
如果&#34;应用代码优先迁移&#34;将自动注入第二个连接字符串。 (VS 2012)或&#34;执行代码优先迁移&#34;在部署向导中选中(VS 2013)复选框:
有关详细信息,请参阅this answer