在Azure中,我有一个名为Sismos数据库,这是我的WCF服务的目标,我在Azure上建立这个数据库的副本是这样的:如何更改WCF服务连接字符串中的数据库?
CREATE DATABASE sismos_cfe AS COPY OF Sismos;
这是因为最初的数据库只是一个测试并将用于其他目的,并且这个新的将处理此WCF服务的所有工作。
在我的WCF服务,我改变了以下线在我的Web.config文件:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;
provider=System.Data.SqlClient;provider connection string="data source=*******.database.windows.net;
initial catalog=Sismos;persist security info=True;user id=*******;password=*****;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
有了这个:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;
provider=System.Data.SqlClient;provider connection string="data source=******.database.windows.net;
initial catalog=sismos_cfe;persist security info=True;user id=*****;password=******;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
而此行中我app.cofig文件:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;
provider=System.Data.SqlClient;provider connection string="data source=******.database.windows.net;
initial catalog=Sismos;persist security info=True;user id=****;password=*****;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
有了这个:
<connectionStrings>
<add name="Model1Container" connectionString="metadata=res://*/Sismos.csdl|res://*/Sismos.ssdl|res://*/Sismos.msl;provider=System.Data.SqlClient;
provider connection string="data source=******.database.windows.net;
initial catalog=sismos_cfe;persist security info=True;user id=****;password=*****;
multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
正如你所看到的,我只替换了initial catalog
属性的值,而不是指向Sismos,它现在应该指向cfe_sismos。
我遇到的问题是,当我尝试访问我的一个端点来处理删除数据库中的条目时,根本没有对数据库进行任何更改。通过选择条目或编辑/插入条目的操作,没有问题。使用Sismos的属性值对于任何端点都没有问题,理论上任何数据库访问都应该指向cfe_sismos数据库。
是不是用我替换initial catalog
属性值不够?任何帮助将不胜感激。
编辑
我只注意到有当编辑的条目,例如,如果我有我的表中的用户的入口,我编辑的姓氏也是问题和古怪的行为,这种变化不会是当我在Azure上检查我的数据库时反映出来,但是如果我调用返回用户的端点,则会出现更改,我花了一些时间来查看是否有某种延迟阻止在Azure中显示最新值,但是它没有显示任何变化。如何在数据库中进行更改而不在实际数据库中显示这些更改?如果我尝试在表中插入新条目,则条目将显示没有问题。因此,总而言之,通过我的WCF服务中的端点,如果我插入的东西它将显示在天蓝,如果我编辑的东西它不会显示在Azure中(但更改将可用时调用相应的端点),如果我想删除某些内容,则不会在Azure中显示,也不会在调用端点时反映更改。
如果Azure中的数据库没有收到任何更改,那么我在哪里获取所有信息?这就像一个缓存数据库存在的地方,我真的很困惑,原因正在发生。
我很困惑这种奇怪的行为,所以我希望有人能帮助我。提前致谢。
这是一个拼写错误的问题,数据库被称为sismos_cfe。 –